【发布时间】:2020-03-30 04:37:21
【问题描述】:
我正在尝试将 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()。看来我在这里做错了什么。
【问题讨论】:
-
第一个脚本写完文件了吗?为什么不直接在 before 脚本中调用 after 脚本中的方法?
-
感谢您的评论。这是 'before.py' (imgur.com/I7opL3Q) 的代码,它应该按预期运行。我不明白的是
python3 after.py tmp1.txt > tmp2.txt应该给出相同的结果。应该和在'before.py'脚本之后调用方法一样吧? -
before.py打印它的输出,它不写入文件,你几乎可以肯定在前一次运行的数据上调用。after.py是做什么的?您也许可以将它们组合成一个脚本 -
啊,我现在慢慢明白了。对于after.py,我只是为了合并它而把它变成这样(imgur.com/a8Jq4NA)。当我转储 txt 文件的记录数时,我只想能够显示相同的记录。当我通过 before.py 检查 create tmp1.txt 时,记录是 44,623,所以它返回 44,619 有点奇怪。为什么缺少 4 条记录? :o
标签: python subprocess