私は、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のファイルを見つけることを確認して最初ほしいです。だから、僕はグロブ後に私のパスを印刷しようとした:
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')
:偽
任意の方法のTODOを適切にこの仕事を?最初にすべての正しい道を持つ最良の方法は何ですか?あなたは以下のようos.path.join
を使用する必要がパスに参加するために
スラッシュをエスケープする必要はありませんが、バックスラッシュのみをエスケープする必要はありません。また、一般に、PythonのWindowsファイルパスを処理する場合は、生の文字列を使用する方が良いです。 –
srm01への 'cd'だけでファイルを開くことはできませんか? –
[Python windows path slash]の重複している可能性があります(http://stackoverflow.com/questions/19065115/python-windows-path-slash) – tripleee