Python:TarFile.open没有这样的文件或目录

时间:2015-08-25 22:35:14

标签: python cygwin

所以我对python很新,我正在编写一个需要解压缩文件的脚本。我用这个简单的功能。

def untar(source_filename, dest_dir):
    for f in os.listdir():
        print(f)

    if(source_filename.endswith("tar.gz") or source_filename.endswith(".tar")):
        tar = tarfile.open(source_filename)
        tar.extractall(dest_dir)
        tar.close()
    else:
        raise Exception("Could not retrieve .depends for that file.")

为了调试目的,我添加了初始for循环。当我调用它时,它会在当前工作目录中打印出我需要的文件名,这意味着它确实存在。这是整个输出。

 dep.tar.gz
Traceback (most recent call last):
  File "init.py", line 70, in <module>
    untar('dep.tar.gz', ".")
  File "init.py", line 17, in untar
    tar = tarfile.open(source_filename)
  File "/usr/lib/python3.4/tarfile.py", line 1548, in open
    return func(name, "r", fileobj, **kwargs)
  File "/usr/lib/python3.4/tarfile.py", line 1646, in bz2open
    compresslevel=compresslevel)
  File "/usr/lib/python3.4/bz2.py", line 102, in __init__
    self._fp = _builtin_open(filename, mode)
FileNotFoundError: [Errno 2] No such file or directory: 'dep.tar.gz'

有人可以告诉我它如何在工作目录中看到该文件,然后突然无法在工作目录中看到该文件?

1 个答案:

答案 0 :(得分:3)

我用来创建tar的程序在文件名的开头放置了一个空格。所以python正在寻找&#39; dep.tar.gz&#39;实际的文件名是&#39; dep.tar.gz&#39 ;. ty @Ben

TIL - 文件名可以以空格开头。