【发布时间】:2016-06-12 16:52:30
【问题描述】:
我正在浏览一个目录并想将所有文件名写入一个文件。这是一段代码
with open("c:/Users/me/filename.txt", "a") as d:
for dir, subdirs, files in os.walk("c:/temp"):
for f in files:
fname = os.path.join(dir, f)
print fname
d.write(fname + "\n")
d.close()
我的问题是,有些文件是用汉字命名的。通过使用print,我可以在控制台中正确地看到文件名,但是在目标文件中,它只是一团糟......我试图像open(u"c:/Users/me/filename.txt", "a")一样打开文件,但它没有工作。我也试过写fname.decode("utf-16"),还是不行……
【问题讨论】:
-
fname.encode('utf8') -
@TimPietzcker 我认为中文字符在文件名中。 :-)
-
作为提示,如果您可以使用/安装 python3,那就去做吧……问题可能会神奇地消失!
-
Python 3x 版本支持 unicode 字符。所以使用 3x 版本。
-
This 问题详细介绍了如何为 UTF 准备文件。
标签: python