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

评论关闭