标签:python app bsp 读取 空白 result lis 操作 mode
open(file, mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Open file and return a stream. Raise IOError upon failure.
常用打开模式:
r 只能读
r+ 可读可写,不会创建不存在的文件,从顶部开始写,会覆盖之前此位置的内容
w+ 可读可写,如果文件存在,则覆盖整个文件,不存在则创建
w 只能写,覆盖整个文件,不存在则创建
a 只能写,从文件底部添加内容 不存在则创建
a+ 可读可写 从文件顶部读取内容 从文件底部添加内容 不存在则创建 ???实际上从头开始写
注:rb 是以二进制读取,用到socket的时候,传输文件,读取和写入用的都是二进制形式,rb和wb可以更快速的进行文件的传输
1 with open(‘test.txt‘, mode=‘r+‘, encoding=‘utf-8‘) as f: 2 f.read(1) 3 f.writelines("北京")
============
写操作不会自动加入换行符
读的一行末尾会有换行操作,可以用‘‘.strip()去掉换行符
with open(‘test.txt‘, mode=‘r‘, encoding=‘utf-8‘) as f: for line in f: print(line.strip()) 去掉换行
================
如果指针已经指向后面,想要读取前面的内容,需要先把指针重新指向前面再读取。
with open(‘test.txt‘, mode=‘w+‘, encoding=‘utf-8‘) as f: f.writelines("天津") f.writelines(‘山东‘) f.flush() f.seek(0) print(f.readlines())
==============
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)) #保存入结果文件
标签:python app bsp 读取 空白 result lis 操作 mode
原文地址:http://www.cnblogs.com/Ethducky/p/7050439.html