首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >子进程-调用-命令的格式不正确

子进程-调用-命令的格式不正确
EN

Stack Overflow用户
提问于 2022-02-25 23:25:54
回答 1查看 40关注 0票数 -1

我正在读取一个文件&基于分隔符“AC.26”写入另一个文件。我使用的是文件中的行,但是XML数据中有新的行,这不能给出正确的结果。所以我用

代码语言:javascript
代码运行次数:0
运行
复制
os.popen ("cut -d '|' -f2 " + tempfile + ' > ' + targetfile)

但是,虽然这会执行我在python中的其他命令& count结果变成incorrect.So,但我尝试按下面的方式使用subprocess.call &因为命令不正确。

代码语言:javascript
代码运行次数:0
运行
复制
subprocess.call("cut -d '|' -f2 " + tempfile + ' > ' + targetfile)

有人能帮助正确格式化此命令以便将其正确解析为Python吗?tempfile & values文件是完整文件路径的参数化值。

EN

回答 1

Stack Overflow用户

发布于 2022-02-25 23:54:41

默认情况下,subprocess.call (a)需要命令行参数列表,而不是字符串,(b)不使用shell运行,因此不能使用>或其他i/o重定向机制。有几种“修复”代码的方法:

  1. 只是用Python修复了它。

您已经使用了一种具有丰富功能的语言来操作文本。您不需要调用像cut这样的程序:

以open(tempfile)作为infd,open(targetfile,"w")作为outfd: for line in infd: outfd.write(line.split("|")1)

  1. 设置了方法调用的shell=True,以便该命令由shell执行:

{targetfile}") (subprocess.call)(f“剪切-d‘-f2’-f2 {tempfile} >-f2)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71272750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档