尝试读取 tarball 时带有绝对路径的 FileNotFoundError

FileNotFoundError with absolute path when trying to read tarball

我正在尝试从 tar 文件中读取,但尽管指定了绝对路径 我得到一个 FileNotFoundError.

这是代码的相关部分:

1 from pathlib import Path
2
3 testPath = Path("G:/test.tar")
4 tar = tarfile.open(testPath, "r")
5 ...

并且该文件确实存在。

但我得到的是(源自第 4 行):

FileNotFoundError: [Errno 2] No such file or directory: 'G:\test.tar'

(顺便说一句,我正在使用 PyCharm。) 我错过了什么?如果需要,我很乐意提供更多信息。

检查以确保您的 script/file 位于正确的目录中

from pathlib import Path
import tarfile

testPath = Path("Songs.txt.tar")
tar = tarfile.open(testPath, "r")
print(tar) # Returns <tarfile.TarFile object at 0x100d44f98>

print(tarfile.is_tarfile("Songs.txt.tar")) # Returns True if its tar file

因为在第 3 行中您使用以下行生成文件路径:

testPath = Path("G:/test.tar")

testPath 变量的类型为 pathlib.WindowsPath。 而在下一个 tarfile.open 中需要字符串格式的文件路径。

请尝试以下操作:

testPath = Path("G:/test.tar")
tar = tarfile.open(str(testPath), "r")

或:

testPath = str(Path("G:/test.tar"))
tar = tarfile.open(testPath, "r")

解决方案:

最近一次电脑重置后,我忘记再次将资源管理器视图更改为 "always show file-type-extension",这导致我没有意识到它应该是

test.tar.gz

因为除了相关文件之外,此目录中只有其他文件夹。 所以调整我的测试路径解决了这个问题。