所以我对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'
有人可以告诉我它如何在工作目录中看到该文件,然后突然无法在工作目录中看到该文件?
答案 0 :(得分:3)
我用来创建tar的程序在文件名的开头放置了一个空格。所以python正在寻找&#39; dep.tar.gz&#39;实际的文件名是&#39; dep.tar.gz&#39 ;. ty @Ben
TIL - 文件名可以以空格开头。