os.walk上的特殊字符和打开换行符

时间:2019-05-31 09:24:43

标签: python-3.x macos encoding

所以我正在运行一个脚本,该脚本使用os.walk和os.path获取目录中所有文件的文件名。

然后使用“ open”和“ newline”将这些文件名写入csv。

显然,在完成的csv中,所有特殊字符,特别是ä,ü,ö,我唯一关心的字符,都完全搞砸了。

我已经将“ encoding ='UTF-8'”传递给“ write”,并将脚本开头的语言环境设置为德语。

我只是猜测os.walk和os.path将路径保存为混乱的字符串,这就是为什么我的方法无助于解决问题的原因。

那么如何强制这些命令以正确的字符编码返回字符串?

提前致以最诚挚的问候。

设置区域设置:

import locale

locale.setlocale(locale.LC_ALL, 'de_DE')

和工作代码:

        for root, dirs, files in os.walk(PATH):
            for file in files:
                if not file.startswith('.'):
                    filepath = os.path.join(root, file)
                    if os.path.isfile(filepath): 
                        csv_f.append([file])
        with open("table.csv", 'w', encoding='UTF-8', newline='') as c:
            writer = csv.writer(c)
            writer.writerows(csv_f)
        c.close()       

0 个答案:

没有答案