我正在浏览目录,并希望将所有文件名写入文件.这是一段代码
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()
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,有些文件以中文字符命名.通过使用print,我可以在控制台中正确地看到文件名,但在目标文件中,它只是一团糟...我试图打开文件open(u"c:/Users/me/filename.txt", "a"),但它没有用.我也试着写fname.decode("utf-16"),还是不行......
在将其写入文件之前使用str.encode()进行编码:fname
d.write(fname.encode('utf8') + '\n')
Run Code Online (Sandbox Code Playgroud)