解压后,无法用python将文件从源写入目标
我使用下面的代码来解压。它能够读取和打印源代码。但是,它没有写入目标解压后,无法用python将文件从源写入目标,python,Python,我使用下面的代码来解压。它能够读取和打印源代码。但是,它没有写入目标 my_dir = r"D:\Download" my_zip = r"D:\Download\my_file.zip" with zipfile.ZipFile(my_zip) as zip_file: for member in zip_file.namelist(): filename = os.path.basename(member) #
my_dir = r"D:\Download"
my_zip = r"D:\Download\my_file.zip"
with zipfile.ZipFile(my_zip) as zip_file:
for member in zip_file.namelist():
filename = os.path.basename(member)
# skip directories
if not filename:
continue
#copy file (taken from zipfile's extract)
source = zip_file.open(member)
target = file(os.path.join(my_dir, filename), "wb")
with source, target:
shutil.copyfileobj(source, target)
作者在评论中留下的进一步信息:
是的,我在控制台中键入脚本名称。虽然它能够读取文件,但无法将其写入目标。它抛出一个错误“str object not callable”-Brad 4小时前
这一行存在问题:target=file(os.path.join(my_dir,filename),“wb”)TypeError:“str”对象不可调用–4小时前
这一行的问题是:target=file(os.path.join(my_dir,filename),“wb”)类型错误:“str”对象不可调用 很可能您之前为名称
文件
分配了字符串,例如文件='foo.py'
。请检查您的密码
此外,您还可以使用open(os.path.join(my_dir,filename),“wb”)代替file(os.path.join(my_dir,filename),“wb”)
下次请在问题正文中包含所有相关信息(例如错误的详细信息)。可能与操作系统有关:我刚刚在GNU/Linux发行版上测试了您的脚本,它按预期工作。另外,您如何调用脚本?我的意思是,只需双击文件图标或在控制台中键入类似于python foo.py
的内容shutil.copyfileobj
在失败时应该会引发一些错误,例如,IOError:[Errno 2]没有这样的文件或目录:foo/bar
是,我在控制台中键入脚本名称。虽然它能够读取文件,但无法将其写入目标。它抛出一个错误“str object not callable”问题出在这一行:target=file(os.path.join(my_dir,filename),“wb”)TypeError:“str”object not callable我已经编辑了您的原始问题,在您的评论中添加了非常有用的信息。