gpt4 book ai didi

awk中的python变量

转载 作者:行者123 更新时间:2023-11-28 21:51:09 24 4
gpt4 key购买 nike

我喜欢 python,我也喜欢 awk,我知道可以通过子进程或命令库使用它,但我想将 awk 与之前在 python 中定义的变量一起使用,就像这个简单的例子:

file = 'file_i_want_read.list'

awk '{print $0}' file > another_file

有人知道我该怎么做或类似的事情吗?

最佳答案

执行此操作的简单方法是不使用 shell,而只是将参数列表传递给 subprocess,因此 file 只是其中一个参数。

唯一的技巧是,如果你不使用shell,你就不能使用像重定向这样的shell特性;您必须使用等效的 subprocess 功能。像这样:

with open('another_file', 'wb') as output:
subprocess.check_call(['awk', '{print $0}', file], stdout=output)

如果你真的想改用 shell 重定向,那么你必须构建一个 shell 命令行。这主要只是使用您最喜欢的 Python 字符串操作方法的问题。但是你需要小心确保引用和/或转义一些东西——例如,如果 file 可能是 file i want read.list,那么它将显示为4 个单独的参数,除非您将其放在引号中。 shlex.quote可以为你做到这一点。所以:

cmdline = "awk '{print $0}' %s > another_file" % (shlex.quote(file),)
subprocess.check_call(cmdline, shell=True)

关于awk中的python变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com