使用压缩 (.gz) 文件,命令行脚本需要未压缩的文件

使用压缩 (.gz) 文件,命令行脚本需要未压缩的文件

为了节省磁盘空间,我对很多经常使用的文件进行了压缩。那么,在 python 脚本等情况下,使用这些文本文件的 .gz 版本的最佳方法是什么?

更具体地说,有没有办法将压缩文件传输到需要未压缩文件的脚本中?

例如,如果我通常运行

python test.py file.txt

我如何使用 运行相同的命令file.txt.gz

我知道我可以做类似的事情

gzip -dk file.txt.gz; python test.py file.txt; rm file.txt

但这似乎有点冗长;有没有更好/更快的方法?

答案1

您想要

for file in *.txt.gz; do python test.py <(zcat "$file"); done

或者

python test.py <(zcat *.txt.gz)

取决于你想传递给 test.py 程序的数据量


根据您的评论:

proc_subs=$( printf ' <(zcat "%s")' *.txt.gz )
echo "python test.py $proc_subs -v"
#eval "python test.py $proc_subs -v"

如果你喜欢它的外观,请取消注释 eval 行

相关内容