Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python os命令未写入文件_Python - Fatal编程技术网

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')
,但没有成功。我修改了解决方案,以创建不存在的文件并附加它。如果答案对你有效,请接受。