将文件夹名称写入文本文件时出错 python

error during writing folders names into a text file python

我正在设置一个脚本,它允许我拥有一个文本文件,其中包含我的主音乐文件夹中的所有歌曲、焊料和子文件夹的名称。

我是这样编码的

import os
folderNames=[]
subFolders=[]
filenames=[]
for folder_names, subfolder_names, file_names in 
    os.walk(r'C:\Users\Patrick\Desktop\Musica'):
    folderNames.append(folder_names)
    openFolderNames=open('allFolders.txt', 'w')
    openFolderNames.write(str(folderNames))

    for subfolder_name in subfolder_names:
        subFolders.append(subfolder_name)
        opensubfolders=open('allSubfolders.txt', 'w')
        opensubfolders.write(str(subFolders))
    for file_name in file_names:
        filenames.append(file_name)
        openfilenames=open('filenames.txt', 'w')
        openfilenames.write(str(filenames))
print('Done!!!')

它给了我这个错误:

Traceback (most recent call last):
File "C:\Users\Patrick\Desktop\My Python Programs\Chapter9\walkingDirectoryTree\walkingDirectoryTree.py", line 17, 
in <module> openfilenames.write(str(filenames))
File "C:\Users\Patrick\AppData\Local\Programs\Python\Python37-32\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u0107' in 
position 7974: character maps to <undefined>

我想我有点需要附加原始字符串,但我在互联网上查了一下,还没有找到解决方案。

Python uses the default codepage 在 Windows 上写入磁盘时 - 在您的情况下这似乎是 cp1252。正在收集的某些路径或文件名包含无法编码为 cp1252 的字符,因此出现错误。

可能的解决方案是:

  • 写入磁盘时将数据编码为utf-8:open('allFolders.txt', 'w', encoding='utf-8')(读取时记得用UTF-8打开文件)

  • 当 运行 您的程序

  • 时,将 PYTHONIOENCODING 环境变量设置为 UTF-8
  • 在运行你的程序

  • 时设置PYTHONUTF8环境变量