【python】读写文件
1.打开文件与文件模式
1.1 文件模式
(1) 'r':读取模式(默认文件模式,显式指定读取模式的效果和不指定模式相同);
(2) 'w':写入模式(如果写入时,文件不存在,会创建文件);
注1:其他模式暂且不罗列;
1.2 打开文件进行读写操作
(1) 写入文件f.write()
1 #!/usr/bin/python3 2 3 f=open('somefile.txt','w') 4 f.write('Hello, World!\n') 5 f.close()
(2) 读取文件f.read()
1 f=open('somefile.txt','r') 2 f.read() 3 f.close()
注1:也可以从标准输入(即sys.stdin)读取信息,如cat file.txt | python3 file_r_stdin.py;
1 #!/usr/bin/python3 2 3 import sys 4 text=sys.stdin.read() 5 print("text: %s"%text) 6 #split:拆分字符串,split括号内如果没有指定分隔符,则默认为一个或多个空格; 7 words=text.split() 8 print("words: %s"%words) 9 10 wordcount=len(words) 11 print("wordcount: %d"%wordcount)
注2:f.read()可以通过传递参数指定读取多少个字符,如果不传递,则读取全部内容;
1 f=open('C:\text\somefile.txt','r'); 2 #读取三个字符; 3 f.read(3) 4 #再读取两个字符; 5 f.read(2)
(3) 采用f.seek()和f.tell()读写指定位置
1 #whence和offset相对于文件开头和文件末尾相关,默认offset相对于文件开头; 2 f.seek(offset[,whence])将当前位置移到offset,然后进行读写; 3 #tell()返回当前位于文件的什么位置; 4 f.tell()
(4) 读取行f.readline()与f.readlines()
1 #readline()返回的是文件整行内容,以字符串的格式; 2 f.readline() 3 #readlines()返回的是文件所有行,以列表的格式; 4 f.readlines()
(5) 写入行f.writelines() (没有f.writeline())
1 #writelines接受一个字符串列表,并将其写入文件内; 2 f.writelines()