文本文件读写

252 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

文本文件读写

file = open("C:\\Users\\Administrator\\Desktop\\wenben.txt", "w") 
file.write("good\n")
file.write("hello\n")
file.close()

w表示写入。首先,文件夹必须存在。作用是:没有该文本则会自动创建,存在该文本则覆盖原文本。

file = open("C:\\Users\\Administrator\\Desktop\\wenben.txt", "r")  
lines = file.readlines() 
file.close()
for x in lines:
    print(x, end="") 

r 表示读取该文件 readlines()表示读取所有行,readline()表示读取一行。读取时,换行符也会存在。 所以最后输出结果时,不用换行结果也会分行显示。

避免因为没有文件而使程序崩溃,则把它放到try语句里,若没有文件输出相应提示。 try except可以捕捉异常。try检测语句的错误,except捕获并处理异常信息

try:
    file = open("C:\\Users\\Administrator\\Desktop\\xxx.txt", "r")  # r表示读取
except Exception as e:
    print(e)      
    print(repr(e)) 

e表示错误类型。 repr() 函数将对象转化为供解释器读取的形式。 两种方式最后输出文字有所不同,分别是: No such file or directory: 'C:\Users\Administrator\Desktop\xxx.txt' FileNotFoundError(2, 'No such file or directory') 但含义相同。

  • 追加

file = open("C:\\Users\\Administrator\\Desktop\\wenben.txt", "a")  
file.write("sun\n")
file.close()

a类似于w。不同在于:原文件存在时,不会覆盖源文件,只是会添加内容。

编码

字符串需要将字符串转化为字节后才能存入文本文件 。存入字节时,字符串需要通过特定的编码规则编码。常见的字符编码:Unicode、ASCII、GBK、GB2312、UTF-8. 我系统是win10,默认的编码规则是UTF-8 创建和读取文件的时候可以指定编码规则,否则导出的信息会乱码。

file = open("C:\\Users\\Administrator\\Desktop\\wenben.txt", "a",encoding="utf-8")