Python os命令未写入文件
我有以下代码:Python os命令未写入文件,python,Python,我有以下代码: import os, subprocess def cfile(): p = r'/mypath/abc' cmd = ["who am i | awk '{print $1}'"] if not os.path.exists(p): fh = open(p, 'a') try: subprocess.Popen(cmd,
import os, subprocess
def cfile():
p = r'/mypath/abc'
cmd = ["who am i | awk '{print $1}'"]
if not os.path.exists(p):
fh = open(p, 'a')
try:
subprocess.Popen(cmd, stdout=fh)
finally:
fh.close()
cfile()
上面的代码正在创建名为“文件夹”的文件,但没有写入任何内容。你能帮我弄清楚这里出了什么问题吗。我使用的是python 2.7,您可以对每个Popen对象调用.wait(),以确保它已完成,然后调用flush()。也许是这样的:
import os
import subprocess
def cfile():
p = r'/mypath/abc'
cmd = ["who am i | awk '{print $1}'"]
fh = open(p, 'a+')
try:
sb = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=fh)
sb.wait()
fh.flush()
finally:
fh.close()
cfile()
您不应该尝试输出到
/mypath/folder
中的文件吗?对我有效:创建一个名为folder
的普通文件(而不是目录),其中包含日期。@Chris我正在mypath目录下创建一个名为“folder”的文件,并想将“date”输出附加到该文件中该文件是否已经存在?仅当文件不在“停止命名文件”文件夹中时,此操作才起作用。很快就会让人困惑。非常感谢。你能告诉我同样的事情吗。如果我再次运行相同的代码,那么我应该从下一行开始追加相同的文件。我尝试了fh=open(p,'a')
,但没有成功。我修改了解决方案,以创建不存在的文件并附加它。如果答案对你有效,请接受。