我尝试通过我的python脚本运行以下命令,以解压缩一堆csv.gz文件
os.system("find /upload/ -name '*.csv.gz' -print -exec gzip -d {} \") <- Syntax error : EOL while scanning string literal.
#When I try to escape it
os.system("find /upload/ -name '*.csv.gz' -print -exec gzip -d {} \\") <- find: missing parameter for « -exec »如何通过os.system执行find /upload/ -name '*.csv.gz' -print -exec gzip -d {} \?
有没有什么可以替代os.system("find /upload/ -name '*.csv.gz' -print0 | xargs -0 -n1 gzip -d")的方法呢?
发布于 2019-10-01 20:39:13
在这里,完全不使用shell实际上是一种简化,只要您了解自己在做什么。您必须添加另一个答案中已经提到的缺少的分号。
import subprocess
subprocess.run([
'find', '/upload/', '-name', '*.csv.gz', '-print',
'-exec', 'gzip', '-d', '{}', ';'], check=True)发布于 2019-10-01 17:37:02
您需要一个(转义的)分号:
os.system("find /upload/ -name '*.csv.gz' -print -exec gzip -d {} \\;")
https://stackoverflow.com/questions/58181833
复制相似问题