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 有内置的方法来做到这一点——无需使用子进程。
我正在编写一个 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 有内置的方法来做到这一点——无需使用子进程。