解压后,无法用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我已经编辑了您的原始问题,在您的评论中添加了非常有用的信息。