By Leo
python版本:Python3.7
问题情境:
这个问题是打算做离线包压缩时遇到的
在自己解决之前在网上也看了许多解决方法但解决的都不是很好 在自己解决后回想起来 改python源码是一种很不好的方案 在其他机器运行报错是可能连原因都找不到 记不得自己更改过了
问题现象
原本的正确文件名:请勿修改任何文件-WatermelonCloud.txt
会变为:╟δ╬≡╨▐╕─╚╬║╬╬─╝■-WatermelonCloud.txt
解决方案
解决namelist乱码
来源
[Python] 纯文本查看 复制代码 #-*- coding: utf-8 -*-
import zipfile
# 默认模式r,读
azip = zipfile.ZipFile("/Users/a/my_file/feise.zip", 'r')
# 返回所有文件夹和文件
zip_list = azip.namelist()
for zip_file in zip_list:
print(zip_file)
print(zip_file.encode('utf-8'))
try:
zip_file = zip_file.encode('cp437').decode('gbk')
except:
zip_file = zip_file.encode('utf-8').decode('utf-8')
print(zip_file)
解决.open时因中文乱码导致的找不到文件
将错就错法 将正确的改为和源码一样的乱码
"正确文件名".encode('gbk').decode('cp437')
应用(完整代码)
[Python] 纯文本查看 复制代码 with f.open("请勿修改任何文件-WatermelonCloud.txt".encode('gbk').decode('cp437'),'r') as sign:
'''
处理文件
'''
第一次发帖没什么经验 只是分享一下自己的经验
如违规请版主谅解 并将会立即改正 |