我在Unix系统中使用这段代码已经有一段时间了,在正常的命令行上运行时,它工作得很好。但是,为了一个项目并学习如何通过Python执行Unix命令,我试图使用Python中的os.system()命令运行它。
总体数据结构有5列和1500行,目标是替换第4列($ 4)中大于2.706的值,然后继续将它们保存到file2.txt中,同时保持文件中的所有其他值相同。 / p>
os.system("awk '{print $1,$2,$3,$5,($4>=2.706)? -999 : $4}' file1.txt > file2.txt")
从此代码中,尝试从python脚本执行后,收到消息无效的语法。
由于我是Python的新手,我相信我必须从代码的那一侧开始丢失语法中的某些内容,但是我一生都无法弄清楚。任何帮助将不胜感激。
尝试使用相同的代码,但使用子流程模块而不是os.system:
arg1 = "awk '{print $1,$2,$3,$5,($4>=2.7059553)\? -999 \: $4}' phenotypes.txt > replacetest.txt"
subprocess.run(arg1, shell=TRUE)
此代码还为arg1命令的创建提供了无效的语法响应。
(代码正在Linux2的Python 2.7.5中运行。)