在shell脚本中运行python脚本:文件不保存

时间:2014-06-03 18:59:35

标签: python bash shell

我是shell脚本的新手,所以我还在想办法。这是我的问题:

我有一个python .py可执行文件,它可以创建多个文件并将它们保存到目录中。我需要在shell脚本中运行该文件。出于某种原因,shell脚本执行python脚本,但我的目录中没有新文件。当我运行.py文件时,一切正常

这是我的shell脚本的样子:

    #!/bin/bash

    cd /home/usr/directory
    python myfile.py

在我的python脚本中,保存的文件是pickle对象实例。所以他们每个人都看起来像这样:

    f = file('/home/usr/anotherdirectory/myfile.p','w')
    pickle.dump(myObject,f)
    f.close()

2 个答案:

答案 0 :(得分:4)

这一行:

f = file('/home/usr/directory/myfile.p','w')

应该是:

f = open('/home/usr/directory/myfile.p','wb+')

对于最佳实践,应该这样做:

with open('/home/usr/directory/myfile.p','wb+') as fs:
    pickle.dump(myObject, fs)

答案 1 :(得分:0)

The documentation for the file function states:

  

打开文件时,最好使用open()而不是直接调用此构造函数。

这样的问题可能是其中一个原因。尝试更改

f = file('/home/usr/directory/myfile.p','w')

f = open('/home/usr/directory/myfile.p','w')