FileNotFoundError с абсолютным путем при попытке прочитать тарбол - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь прочитать из tar-файла, но, несмотря на указание абсолютного пути я получаю FileNotFoundError .

Это соответствующая часть кода:

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

и файл определенно существует. enter image description here

Но что я получаю (начиная со строки 4):

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

(кстати, я использую PyCharm.) Что мне не хватает? Я с удовольствием предоставлю дополнительную информацию, если это необходимо.

Ответы [ 3 ]

0 голосов
/ 04 ноября 2018

Поскольку в строке № 3 вы генерируете путь к файлу, используя следующую строку:

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

Переменная testPath имеет тип pathlib.WindowsPath. в то время как в следующем tarfile.open требуется filepath в строковом формате.

Пожалуйста, попробуйте следующее:

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

или:

testPath = str(Path("G:/test.tar"))
tar = tarfile.open(testPath, "r")
0 голосов
/ 04 ноября 2018

Решение:

после недавнего сброса компьютера я забыл изменить представление обозревателя на «всегда показывать расширение типа файла», что привело к тому, что я не узнал, что это должно было быть

test.tar.gz

поскольку в этом каталоге были только другие папки, кроме рассматриваемого файла. Так что настройка моего testPath решила это.

0 голосов
/ 04 ноября 2018

Убедитесь, что ваш скрипт / файл находится в правильном каталоге

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
...