我使用的是Python版本:2.7.12 | Anaconda 4.1.1(64位)|(默认,2016年6月29日,11:07:13)[MSC v.1500 64位(AMD64)](Windows 7)
我在脚本中使用lz4,在使用lz4读取文件时遇到问题。框架打开()
文件名来自PyQt4的“选择文件”对话框,在调用lz4之前,它将转换为unicode,并使用encoding='utf-8'。框架打开():
C:/Users/user/Desktop/δθμ/PREVIEW/Questionnaire.db
<type 'unicode'>
如果代码作为
#fl = fl.encode('utf-8')
with lz4.frame.open(fl, mode='r') as f:
我得到一个
'filename must be a str, bytes, file or PathLike object'
TypeError: filename must be a str, bytes, file or PathLike object
如果代码作为
fl = fl.encode('utf-8')
with lz4.frame.open(fl, mode='r') as f:
我得到一个
self._fp = builtins.open(filename, mode)
IOError: [Errno 2] No such file or directory: 'C:/Users/user/Desktop/\xce\xb4\xce\xb8\xce\xbc/PREVIEW/Questionnaire.db'
错误。你知道吗
你知道怎么解决吗?你知道吗
编辑1: 这不是复制品。如前所述,filedialog返回的字符串在函数调用之前已转换为unicode with unicode(fl,'utf-8'),但在本例中或在使用'utf-8'将其编码为str之后,它会给出一个错误。您提到的链接中的问题是,对话框返回的字符串没有被当作qstring类型来处理
编辑2: 如果将“Δθμ”改为拉丁字符,代码将按预期运行
fl = fl.encode('utf-8')
with lz4.frame.open(fl, mode='r') as f:
但必须处理带有此类字母甚至空格的文件夹。你知道吗
错误说明:文件名必须是str、bytes、file或PathLike对象:
我使用以下代码创建了源文件:
然后我给了他一个file object的实例:
而且很有效。你知道吗
相关问题 更多 >
编程相关推荐