赞
踩
已经遇到过很多次在python中读取文件,文件路径中反斜杠使用不标准导致系统无法准确识别路径的问题了。通常这种情况需要在下例中特别注意:
file_path = "D:\notebook\test.txt" #错误
file_path2 = "D:\\notebook\\test.txt" #正确
file_path3 = "D:/notebook/test.txt" #正确
with open(file_path, "rb") as f:
f.read()
但是当我们把文件路径事先写到文件中,使用python从文件中读取到而不是直接写在程序的string中时,就不用考虑反斜杠转义之类的了。因为当使用bytes形式把这些读入的string print出来时,可以发现文件中的\都变为了\。
另外一个发现,把文件路径事先写到文件中时,无论是一个反斜杠,还是两个反斜杠,还是三个、四个,程序之后读取文件路径都能成功执行。这段逻辑能成功执行应该写在了底层函数中?
read()
函数时发生错误UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
神奇的是之前用过相同的方法读类似的xml文件就从没有报过错。所以文件读取时保险起见最好都加上这个参数。
解决方法:在读取文本的时候加入参数b
file = open(path, 'rb')
import os
# now_path获取当前工作目录
now_path = os.getcwd()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。