将文件夹名称写入文本文件时出错 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环境变量
我正在设置一个脚本,它允许我拥有一个文本文件,其中包含我的主音乐文件夹中的所有歌曲、焊料和子文件夹的名称。
我是这样编码的
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环境变量