【发布时间】:2016-11-03 18:04:38
【问题描述】:
在 Python 中调用 awk 时遇到一些问题。通常,我会执行以下操作以从命令行调用 awk 中的命令。
- 打开命令行,无论是否处于管理员模式。
- 把我的目录改成
awk.exe,即cd R\GnuWin32\bin - 致电
awk -F "," "{ print > (\"split-\" $10 \".csv\") }" large.csv
我的命令用于将large.csv文件根据第10列拆分成若干个名为split-[COL VAL HERE].csv的文件。我运行这个命令没有问题。我尝试使用 subprocess.call() 在 Python 中运行相同的代码,但我遇到了一些问题。我运行以下代码:
def split_ByInputColumn():
subprocess.call(['C:/R/GnuWin32/bin/awk.exe', '-F', '\",\"',
'\"{ print > (\\"split-\\" $10 \\".csv\\") }\"', 'large.csv'],
cwd = 'C:/R/GnuWin32/bin/')
很明显,当我执行函数(CPU 使用率等)时,有些东西正在运行,但是当我去检查 C:/R/GnuWin32/bin/ 时,目录中没有拆分文件。知道出了什么问题吗?
【问题讨论】:
-
你有什么理由不用 Python 做同样的事情,所以你不必运行 awk?
标签: python python-3.x awk command-line