做钓鱼网站违法,网络建设推广,成都app拉新工作室加盟,网站建设讠金手指科杰文章目录 读文件python2python3差异示例代码 文件路径问题处理#xff1a;字符编码报错 读文件
python2python3差异
普通模式#xff08;python2、python3通用#xff09;
f open(fileName, moder)open函数在python2和python3差异点#xff1a;
python3支持… 文章目录 读文件python2python3差异示例代码 文件路径问题处理字符编码报错 读文件
python2python3差异
普通模式python2、python3通用
f open(fileName, moder)open函数在python2和python3差异点
python3支持多个参数python2只有2个参数且对于文件编码不支持
#python3
def open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue): # known special case of open#python2
open(name[, mode[, buffering]])python2如何支持不同编码的文件读写
import codecs
# 这里增加u是为了防止乱码详见 https://blog.csdn.net/songlh1234/article/details/83791205
fileNameWrite u测试codecs写入gbk.txt
fileWrite codecs.open(fileNameWrite, w, gbk)
fileWrite.write(设备编号,deviceID,ehomeKey,执行结果,返回报文\n)另外这里需要注意以上代码在python3下执行正常但write这一行代码在python2下会报错
UnicodeDecodeError: ascii codec cant decode byte 0xe8 in position 0: ordinal not in range(128)需要额外设置默认字符
try:# Python2reload(sys)sys.setdefaultencoding(utf-8)
except NameError:print(NameError)示例代码
UTF-8编码方式打开文件
def openFile(path):f Nonetry:f open(path, encodingUTF-8)except FileNotFoundError:print(open file %s error % path)else:print(open file %s ok % path)return fgb18030编码方式打开文件
def openFile(path):f Nonetry:f open(path, encodinggb18030)except FileNotFoundError:print(open file %s error % path)else:print(open file %s ok % path)return f说明如果不带encoding参数会采用系统编码Windows下默认为gbk 读取文件内容
file_name rD:\1.txt
f openFile(file_name)
for line in f:print(line)文件路径
获取当前路径
os.getcwd()拼接路径和文件名
fileName1 os.path.join(filePath, fileName) 获取文件所在的文件目录
directory_path os.path.dirname(file_name) # 根据绝对路径返回所在的目录问题处理字符编码报错
读取文件字符时遇到如下问题
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa6 in position 1909: illegal multibyte sequence问题原因文档默认使用’gbk’编码打开但文档实际编码是gb18030有些字符无法被gbk识别。
解决方案打开文件的时候可以指定字符集为gb18030
f open(path, encodinggb18030)