遇到一个编码问题,问题简化如下:
在当前 desktop 目录下,有如下内容:
desktop $ ls
client.pyserver.py中文测试
arcpy.txtcodetest.pytest.py
如上所示有一个中文命名的文件 ----> 中文测试
# -*- coding:utf-8 -*-
# python3.5.1
import os,sys
print (sys.getdefaultencoding()) #系统默认编码
dir_list = os.listdir()
for li in dir_list:
print (li)
输出如下:
utf-8
arcpy.txt
client.py
codetest.py
server.py
test.py
中文测试
可以看出默认编码为 utf-8,os.listdir()命令可以正常输出中文字符。
在使用 os.popen()时:
# -*- coding:utf-8 -*-
# python3.5.1
import os,sys
print (sys.getdefaultencoding()) #系统默认编码
dir_list = os.popen('ls','r').read()
for li in dir_list:
print (li)
报错如下:
utf-8
Traceback (most recent call last):
File "Desktop/codetest.py", line