将未压缩的文件提供给命令行参数

feed uncompressed file to command line argument

假设我有一个 gzip 文件,但我的脚本只接受一个未压缩的文件。

在不修改脚本以接收压缩文件的情况下,我可以使用 bash 即时解压缩文件吗?

例如:

python ../scripts/myscript.py --in (gunzip compressed_file.txt.gz)

您可以使用进程替换,只要 Python 脚本不尝试在文件中向后查找:

python ../scripts/myscript.py --in <(gunzip compressed_file.txt.gz)

Python 接收文件名作为参数;该名称只是指的不是磁盘上的简单文件。只能以只读模式打开,尝试使用seek方法会失败。


如果您使用 zsh 而不是 bash,您可以使用

python ../scripts/myscript.py --in =(gunzip compressed_file.txt.gz)

和 Python 将收到一个可以像任何其他文件一样使用的实际(临时)文件的名称。不过,python 退出后,shell 会删除该文件。