gpt4 book ai didi

python 的 subprocess.check_call 说一个非空文件是空的

转载 作者:行者123 更新时间:2023-12-04 09:13:22 26 4
gpt4 key购买 nike

我尝试使用 subprocess 使用 'wc -l' 命令打印行数。它输出文件是空的,而它不是。

import os
import subprocess
import tempfile
import time

filename = '/tmp/aaaaa'

with open(filename, 'w') as fout:
fout.write('1')

with open(filename) as fin:
print(fin.readlines())

subprocess.check_call('wc -l {}'.format(filename), shell=True)
输出:
['1']
0 /tmp/aaaaa
为什么会发生?我的 python 版本是 2.7.16。

最佳答案

正如评论中所说,您至少缺少换行符。wc -l计算文件中存在的行数。
假设这是你想要的,你需要创建一条线:

with open(filename, 'w') as fout:
fout.write('1\n')
为了使它独立于操作系统做
import os

with open(filename, 'w') as fout:
fout.write('1'+os.linesep)
看到这个 similar QA欲了解更多信息
如果您不需要线路,请查看 how to test if a file is empty in bash

关于python 的 subprocess.check_call 说一个非空文件是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63311925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com