【发布时间】:2016-09-07 13:17:04
【问题描述】:
我正在尝试提取位于名为 srm01、srm02 和 srm03 的不同文件中的 tar.gz 文件。 文件名必须在输入(字符串)中才能运行我的代码。 我正在尝试做这样的事情:
import tarfile
import glob
thirdBloc = 'srm01' #Then, that must be 'srm02', or 'srm03'
for f in glob.glob('C://Users//asediri//Downloads/srm/'+thirdBloc+'/'+'*.tar.gz'):
tar = tarfile.open(f)
tar.extractall('C://Users//asediri//Downloads/srm/'+thirdBloc)
我有这个错误信息:
IOError: CRC check failed 0x182518 != 0x7a1780e1L
我想首先确保我的代码找到 .tar.gz 文件。所以我试着在 glob 之后打印我的路径:
thirdBloc = 'srm01' #Then, that must be 'srm02', or 'srm03'
for f in glob.glob('C://Users//asediri//Downloads/srm/'+thirdBloc+'/'+'*.tar.gz'):
print f
这给了:
C://Users//asediri//Downloads/srm/srm01\20160707000001-server.log.1.tar.gz
C://Users//asediri//Downloads/srm/srm01\20160707003501-server.log.1.tar.gz
os.path.exists 方法告诉我我的文件不存在。
print os.path.exists('C://Users//asediri//Downloads/srm/srm01\20160707000001-server.log.1.tar.gz')
这给出了:错误
有什么方法可以正确完成这项工作吗?首先拥有正确路径的最佳方法是什么?
【问题讨论】:
-
您不需要转义正斜杠,只需转义反斜杠即可。此外,在 python 中处理 Windows 文件路径时,通常最好使用原始字符串。
-
你不能直接
cd到 srm01 并在那里打开你的文件吗?
标签: python python-2.7 filepath glob tarfile