刚刚在运行python文件的时候竟然报SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: tr这个错误,其实引起这个错误的原因就是转义的问题。
    举个例子,在文件中我传入的文件路径是这样的
sys.path.append('c:\Users\mshacxiang\VScode_project\web_ddt')
    原因分析:在windows系统当中读取文件路径可以使用\,但是在python字符串中\有转义的含义,如\t可代表TAB,\n代表换行,所以我们需要采取一些方式使得\不被解读为转义字符。目前有3个解决方案
1、在路径前面加r,即保持字符原始值的意思。
sys.path.append(r'c:\Users\mshacxiang\VScode_project\web_ddt')
2、替换为双反斜杠
sys.path.append('c:\\Users\\mshacxiang\\VScode_project\\web_ddt')
3、替换为正斜杠
sys.path.append('c:/Users/mshacxiang/VScode_project/web_ddt')
 
二、读取文件
# 操作文件 mode=r表示对文件只进行可读操作,已文本的形式。 如果是rb表示已二进制的形式读到内存中
f = open(file=r"C:\Users\Administrator\Desktop\运营草稿本.txt", mode="r", encoding="GB2312")
data = f.read()
print(data)
f.close()

 

三、查看文件的编码格式
import chardet

result = chardet.detect(open(file=r"C:\Users\Administrator\Desktop\运营草稿本.txt", mode="rb").read())
print(result)

 

四、循环读取文件
# 循环文件
f = open(file=r"C:\Users\Administrator\Desktop\运营草稿本.txt", mode="r", encoding="GB2312")
# 循环读取文件,一次只读一行
for line in f:
    print(line)

 

五、写入文件
# 写入文件 注意:文件中原有的内容会被全部覆盖
f = open(file=r"C:\Users\Administrator\Desktop\运营草稿本.txt", mode="w", encoding="GB2312")
f.write("python写入的字符")
f.close()

 

 
六、将内容追加到文件尾部
# 将内容追加到文件尾部
f = open(file=r"C:\Users\Administrator\Desktop\运营草稿本.txt", mode="ab")
f.write("最追加的内容".encode("GB2312"))
f.close()

 

七、读写混合模式
# 读写混合模式,以读的模式打开,支持你写
f = open(file=r"C:\Users\Administrator\Desktop\运营草稿本.txt", mode="r+", encoding="GB2312")
print("old"+f.read())
f.write("最追加的内容")
print("new:"+f.read())
f.close()

 

八、写读混合模式
# 写读混合模式,以创建的模式打开,支持你读
f = open(file=r"C:\Users\Administrator\Desktop\运营草稿本.txt", mode="w+", encoding="GB2312")
f.write("写读混合模式")
date = f.read()
print(date)
f.close()

 

九、操作文件
truncate、tell和seek都是按照字节算进行操作
read按照字符算进行操作
truncate从文件开始的地方截取到指定参数长度位置

 

 

posted on 2022-07-19 18:05  时光以北暮南城  阅读(26)  评论(0编辑  收藏  举报