python - Python subprocess.call 与 python shell 的运行方式不同
问题描述
我正在尝试将 2 个 python 脚本(before.py 和 after.py)合并为一个,因为我需要为 python 脚本设置一个 cron 作业以在一次执行中运行这两个脚本。
这两个脚本连接在一起,其中由after.py (tmp1.txt)处理的文件由before.py生成。
脚本的原始顺序是
python3 before.py someCsv.csv > tmp1.txt
python3 after.py tmp1.txt >tmp2.txt
在 before.py 中,我添加了这个
subprocess.call(' python3 after.py tmp1.txt > tmp2.txt', shell=True)
我相信这将允许在 python 中执行运行 shell 命令。
如果我直接运行脚本(after.py),它会返回 44,623 条记录。但是如果我通过 subprocess.call() 在 before.py 中运行 after.py,它只返回 44,619 条记录。
我在两个脚本中使用相同的文件,即 tmp1.txt。
我尝试了 subprocess.call()、subprocess.run() 和 os.system()。看来我在这里做错了什么。
解决方案
推荐阅读
- informatica-powercenter - Informatica中单行多列的比较
- linux - Apache 无法启动“无法绑定到地址 [::]:443”虽然没有进程正在使用它,但 netcat 可以打开它
- raspberry-pi3 - Android things Stable 1.0.0 版是否正式支持树莓派 3 通过 GSM/3g/4g 使用 USB 棒上网?
- algorithm - 如何对图进行排序并使其看起来合理
- node.js - Node.js + Express 基本语法解释
- linux - 我们如何使用 sed 命令将 \n 写入文件?
- java - 如何修复多线程应用程序数组中的 NullPointerException
- .net - Bot builder : 如何在 SPFx 中启用我的 Bot 以在连接后识别用户
- listview - UWP ListView x:Bind SelectionMode StackoOverflowException
- java - 使用 Java 客户端进行单点登录