【发布时间】:2021-06-13 18:20:17
【问题描述】:
如果我使用 python 命令,我必须打开一个文件,写入它,然后关闭它。
foo = open("file name", w+)
foo.write("blah")
foo.close()
通过使用subprocess.run,我可以运行linux shell 命令subprocess.call(['echo', 'blah', '>', 'foo'])。
这发生在一个无限循环内,每秒钟重复一次,因此应该尽可能缩短时间。
问题是我应该使用哪种方法?
【问题讨论】:
-
你试过
subprocess.call(['echo', 'blah', '>', 'foo'])吗?成功了吗? -
嗯,好像有问题,
subprocess.call(['echo', 'blah', '>', 'foo'])给出消息CompletedProcess(args=['echo', 'blah', '>', 'foo'], returncode=0)但没有创建文件。另一方面,os.system('echo blah > foo')` 有效!这是为什么呢? -
>在 shell 命令中具有特殊意义。subprocess.call所写的不会运行 shell 命令。
标签: python-3.x linux shell file subprocess