Learn Python By Practice — 文件读写,,import sysim
文章由Byrx.net分享于2019-03-23 09:03:31
Learn Python By Practice — 文件读写,,import sysim
import sysimport codecsimport pickledef filetest(): # 读文件,可选的模式参数包括r:读,w:写,a:追加,U:通用换行模式(因为Windows下的标准换行为\\r\\n,Linux下为\\n) # b:二进制模式,+:等价于rw,t:文本模式(默认值) # 模式参数可选,如果省略则默认为r print("读文件:") f = open("test.txt", "rU") for line in f: print(line) f.close() # 关闭文件流 print("-------------------------") # 注意如果文件中包含中文,必须设定编码参数与文件编码一致才可以正常读取 # 使用codecs模块读取unicode文件,如果不指定字符编码参数则默认为utf-8 print("指定编码读文件:") f = codecs.open("test.txt", "rU", "utf-8") # 指定文件的字符编码为utf-8 for line in f: print(line) f.close() print("-------------------------") # f.read() # 不指定任何参数,则读取整个文件的内容并返回,注意可能文件大小超过机器内存。如果读到文件末尾将返回一个空字符串 print("文件读read(): ") f = open("test.txt", "rU") print(f.read()) print(f.read()) # 打印空字符串 f.close() # 指定size表示读取的字符数或者字节数 print("文件read()读取指定字符数:") f = open("test.txt", "rU") print(f.read(5)) f.close() print("文件read()读取指定字节数:") f = open("test.txt", "rbU") print(f.read(6)) # 读取得到6个字节,为 b'hello,' f.close() print("-------------------------") # f.readline()按行读取 print("按行读取文件readline():") f = open("test.txt", "rU") line = f.readline() count = 0 while line != "": print(line) line = f.readline() count += 1 print("共有%d行" % (count)) # 总共有两行但显示上看起来有3行因为第一行末尾带有一个换行符 f.close() print("-------------------------") # f.readlines()读取所有行到数组,每行是一个元素 print("读取所有行readlines():") f = open("test.txt", "rU") lines = f.readlines() for line in lines: print(line) f.close() print("-------------------------") # 官方推荐的文件读取方法( memory efficient, fast, and leads to simpler code) print("for loop读取文件:") f = open("test.txt", "rU") for line in f: print(line, end="") print("\\n-------------------------") # 写文件write() print("写文件write():") f = open("test.txt", "a+") f.write("\\nthis is a new string added by write()") f.close() print("-------------------------") # 除了最简单的写入字符串还可以写入其他对象,但首先必须转为字符串或字节 print("写其他对象到文件中:") f = open("test.txt", "a+") o = ["complicated", "object"] f.write("\\n" + str(o)) f.close() print("-------------------------") # 字节流方式写入 print("二进制方式写文件:") f = open("test.txt", "ab+") f.write(b"012345abcdef") f.close() print("-------------------------") # seek()、tell() print("seek和tell方法:") f = open("test.txt", "rb+") print(f.seek(3)) # 到第四个字节 print("第四个字节为:" + str(f.read())) # 返回第四个字节开始往后的所有内容 print("当前位置:" + str(f.tell())) f.close() print("-------------------------") # 使用pickle模块来方便地实现文件到对象,对象到文件 # 如果是写对象到文件pickle模块会帮我们先将对象转成字符串 # 对象转成字符串的过程称为pickling # 根据字符串构建对象的过程称为unpickling print("pickle模块使用:") # 略def main(): filetest()if __name__=="__main__": main()#该片段来自于http://byrx.net
评论关闭