Python 从新写入的文件中读取在模块中不起作用

Python read from a newly written file does not work in module

我正在编写一个 python 模块,用于处理当前目录的文件。 这是代码:

import subprocess

filename="tmp_file"

#sends ls output to a temporary file
with open(filename, 'w+') as f:
    subprocess.Popen(['ls', '-p'], stdout=f)
    f.seek(0)
    result = f.read()

然而结果似乎是空的。为什么? (如果我在 Python 解释器中一次执行一条命令,它会正常工作)

您需要通过 wait()check_call() 或其他方法之一让子进程完成。

subprocess.Popen(['ls', '-p'], stdout=f).wait()

另外,如果您的目标是列出目录的内容,Python 有内置的方法来做到这一点——无需使用子进程。