open
1
2
3
4
5
6
7
8
9
f = open ( 'filename' , 'r' ) # 读模式
f = open ( 'filename' , 'w' ) # 写模式
f = open ( 'filename' , 'a' ) # 追加模式
注:rb 是以二进制读取
现在你觉得没用对吧,我也这么觉得。。。
but
在以后用到socket的时候,传输文件,读取和写入用的都是二进制形式
rb和wb可以更快速的进行文件的传输
读取内容方式
f.read() # 一次读取整个文件,文件大不适用 f.readline() # 一次只读取一行,占内存小,速度慢 f.readlines() # 一次性读取,将内容分析成一个行的列表,可以由for...in...处理
写文件方式
f.write(content) # 不会换行哦 f.writeline(content) # 下次会写在下一行
close
f.close()
示例:
1
2
3
4
5
6
7
8
9
10
11
12
f = open ( 'cdays-4-test.txt' , 'r' ) #以读方式打开文件
result = list ()
for line in f.readlines(): #依次读取每行
line = line.strip() #去掉每行头尾空白
if not len (line) or line.startswith( '#' ): #判断是否是空行或注释行
continue #是的话,跳过不处理
result.append(line) #保存
result.sort() #排序结果
f.close() #关闭文件
with open ( 'new_file.txt' , 'w' ) as fw: #with方式不需要再进行close
fw.write( '%s' % '\n' .join(result)) #保存入结果文件