input函数用法
python input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。
raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。
注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的python表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。
除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
注意:==python3 里 input() 默认接收到的是 str 类型。==
函数语法
input([prompt])
参数说明:
无
实例1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26input() 需要输入 python 表达式
>>>a = input("input:")
input:123 # 输入整数
>>> type(a)
<type 'int'> # 整型
>>> a = input("input:")
input:"runoob" # 正确,字符串表达式
>>> type(a)
<type 'str'> # 字符串
>>> a = input("input:")
input:runoob # 报错,不是表达式
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'runoob' is not defined
<type 'str'>
raw_input() 将所有输入作为字符串看待
>>>a = raw_input("input:")
input:123
>>> type(a)
<type 'str'> # 字符串
>>> a = raw_input("input:")
input:runoob
>>> type(a)
<type 'str'> # 字符串
>>>
文件的打开与关闭 open(文件名,访问模式)
f = open(‘test.txt’, ‘w’)
访问模式 说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。1
2
3
4
5# 新建一个文件,文件名为:test.txt
f = open('test.txt', 'w')
# 关闭这个文件
f.close()
文件的读写
写数据(write)
1 | f = open('test.txt', 'w') |
使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
读数据(read)
1 | f = open('test.txt') |
读数据(readlines)
1 | #coding=utf-8 |
1:hello world, i am here!
2:hello world, i am here!
3:hello world, i am here!
4:hello world, i am here!
拷贝一个文件
1 | #coding=utf-8 |
文件夹的相关操作
创建文件夹
import os
os.mkdir(“张三”)
###获取当前目录
import os
os.getcwd()
###改变默认目录1
2
3import os
os.chdir("../")
1 | import os |
C:\Users\lenovo\workspace\te\src\test
C:\Users\lenovo\workspace\te
获取目录列表
1 | import os |
[‘test.py’, ‘test[复件].txt’, ‘ts.py’]
删除文件
import os
os.remove(“毕业论文.txt”)
文件重命名
import os
os.rename(“毕业论文.txt”, “毕业论文-最终版.txt”)
python os.path模块常用方法
os.path.abspath(path)
返回path规范化的绝对路径。
os.path.abspath(‘test.csv’)
‘C:\Python25\test.csv’
os.path.abspath(‘c:\test.csv’)
‘c:\test.csv’
os.path.abspath(‘../csv\test.csv’)
‘C:\csv\test.csv’
os.path.split(path)
将path分割成目录和文件名二元组返回。
os.path.split(‘c:\csv\test.csv’)
(‘c:\csv’, ‘test.csv’)
os.path.split(‘c:\csv\‘)
(‘c:\csv’, ‘’)
os.path.dirname(path)
返回path的目录。其实就是os.path.split(path)的第一个元素。
os.path.dirname(‘c:\csv\test.csv’)
‘c:\‘
os.path.dirname(‘c:\csv’)
‘c:\‘
os.path.basename(path)
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。
os.path.basename(‘c:\test.csv’)
‘test.csv’
os.path.basename(‘c:\csv’)
‘csv’ (这里csv被当作文件名处理了)
os.path.basename(‘c:\csv\‘)
‘’
os.path.commonprefix(list)
返回list中,所有path共有的最长的路径。
如:
os.path.commonprefix([‘/home/td’,’/home/td/ff’,’/home/td/fff’])
‘/home/td’
os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
os.path.exists(‘c:\‘)
True
os.path.exists(‘c:\csv\test.csv’)
False
os.path.isabs(path)
如果path是绝对路径,返回True。
os.path.isfile(path)
如果path是一个存在的文件,返回True。否则返回False。
os.path.isfile(‘c:\boot.ini’)
True
os.path.isfile(‘c:\csv\test.csv’)
False
os.path.isfile(‘c:\csv\‘)
False
os.path.isdir(path)
如果path是一个存在的目录,则返回True。否则返回False。
os.path.isdir(‘c:\‘)
True
os.path.isdir(‘c:\csv\‘)
False
os.path.isdir(‘c:\windows\test.csv’)
False
os.path.join(path1[, path2[, …]])
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。
os.path.join(‘c:\‘, ‘csv’, ‘test.csv’)
‘c:\csv\test.csv’
os.path.join(‘windows\temp’, ‘c:\‘, ‘csv’, ‘test.csv’)
‘c:\csv\test.csv’
os.path.join(‘/home/aa’,’/home/aa/bb’,’/home/aa/bb/c’)
‘/home/aa/bb/c’
os.path.normcase(path)
在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。
os.path.normcase(‘c:/windows\system32\‘)
‘c:\windows\system32\‘
####os.path.normpath(path)
规范化路径。
os.path.normpath(‘c://windows\System32\../Temp/‘)
‘c:\windows\Temp’
os.path.splitdrive(path)
返回(drivername,fpath)元组
os.path.splitdrive(‘c:\windows’)
(‘c:’, ‘\windows’)
os.path.splitext(path)
分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
os.path.splitext(‘c:\csv\test.csv’)
(‘c:\csv\test’, ‘.csv’)
os.path.getsize(path)
返回path的文件的大小(字节)。
os.path.getsize(‘c:\boot.ini’)
299L
dirname() 用于去掉文件名,返回目录所在的路径
如:
import os
os.path.dirname(‘d:\library\book.txt’)
‘d:\library’
basename() 用于去掉目录的路径,只返回文件名
如:
import os
os.path.basename(‘d:\library\book.txt’)
‘book.txt’
join() 用于将分离的各部分组合成一个路径名
如:
import os
os.path.join(‘d:\library’,’book.txt’)
‘d:\library\book.txt’
split() 用于返回目录路径和文件名的元组
如:
import os
os.path.split(‘d:\library\book.txt’)
(‘d:\library’, ‘book.txt’)
splitdrive() 用于返回盘符和路径字符元组
import os
os.path.splitdrive(‘d:\library\book.txt’)
(‘d:’, ‘\library\book.txt’)
splitext() 用于返回文件名和扩展名元组
如:
os.path.splitext(‘d:\library\book.txt’)
(‘d:\library\book’, ‘.txt’)
os.path.splitext(‘book.txt’)
(‘book’, ‘.txt’)