尝试读取 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
因为除了相关文件之外,此目录中只有其他文件夹。
所以调整我的测试路径解决了这个问题。
我正在尝试从 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
因为除了相关文件之外,此目录中只有其他文件夹。 所以调整我的测试路径解决了这个问题。