在脚本完成之前,文件不会完成写入

时间:2016-09-29 22:56:28

标签: python json io

我陷入了一些我认为应该足够简单的事情。 我正在创建一个包含json字符串的文件,以导入到postgres数据库中。但是,即使python脚本的内部测试显示它存在,该文件也不会导入。

但是,如果我在脚本完成后执行postgres导入,它将复制正常,或者如果我将它们包装在单独的脚本中并从单个脚本中调用它将起作用,但是如果两个请求都在同一个脚本中,则永远不会。我试过close(),fsync和flush,但没有运气..

任何人都可以帮忙吗?

相关代码如下。

command=str("PGPASSWORD=password psql -d database -U postgres -V -c \"copy import.table from Data.txt'\"")
print command

    dataFile=open('Data.txt','w')
    for x in xx:
        xString=json.loads(data)
        xString[i]['source']=x
        xString[i]['created_at'].replace('"','')
        xStringJson=json.dumps(xString)
        dataFile.write(xStringJson)
        dataFile.close
        dataFile.flush()
        os.fsync(dataFile)
        print os.path.isfile('Data.txt')
        pg_command(command)
    i=i+1

1 个答案:

答案 0 :(得分:4)

您没有关闭该文件。

这没有任何作用,因为它缺少括号:

dlv exec ./cmd/geronimo/geronimo -- revalidate --dir configs/ --name revalidate-test

但事件如果它关闭了,它会在第一次迭代中通过xx完成。

这样做:

dataFile.close