使用 subprocess.call 解压文件 运行 成功但没有效果
Untar file with subprocess.call is running successfully but with no effect
有谁知道我用这个命令做错了什么:
import subprocess
subprocess.call('tar -zvxf %s -C %s' % ("file.tar.gz", '/folder'), shell=True)
代码运行没有任何错误,但文件只是在随机情况下解压缩。我知道我可以使用 tarfile
,但我想 运行 它作为 Linux 命令。有什么想法吗?
如果您阅读手册页,您会发现 -C
参数对顺序很敏感——它只影响命令行上它后面的操作。因此,您的文件将被解压缩到您碰巧所在的任何随机目录中。
您不需要 shell。做:
import os
import subprocess
os.chdir('/folder')
subprocess.call( ['tar','xvfz', 'file.tar.gz'] )
有谁知道我用这个命令做错了什么:
import subprocess
subprocess.call('tar -zvxf %s -C %s' % ("file.tar.gz", '/folder'), shell=True)
代码运行没有任何错误,但文件只是在随机情况下解压缩。我知道我可以使用 tarfile
,但我想 运行 它作为 Linux 命令。有什么想法吗?
如果您阅读手册页,您会发现 -C
参数对顺序很敏感——它只影响命令行上它后面的操作。因此,您的文件将被解压缩到您碰巧所在的任何随机目录中。
您不需要 shell。做:
import os
import subprocess
os.chdir('/folder')
subprocess.call( ['tar','xvfz', 'file.tar.gz'] )