Python终端调用无法与文件交互

时间:2017-01-15 19:09:35

标签: python-3.x terminal permissions

我正在编写一个处理服务器上某些数据的程序。在整个程序中,制作了许多文件并作为输入发送到其他程序。为此,我通常会创建命令字符串,然后像这样运行它:

cmd = "prog input_file1 input_file2 > outputfile"
os.system(cmd)

但是,当我运行该命令时,被调用的程序会报告它们无法打开文件。如果我在本地计算机上运行python代码,那很好。当我将它加载到服务器上时,它开始失败。我认为这与权限问题有关,但我不确定如何解决这个问题。许多文件,特别是输出文件,都是在运行时创建的。输入文件具有所有用户的完全权限。任何帮助或建议将不胜感激!

干杯!

1 个答案:

答案 0 :(得分:0)

您列出的python代码简单而正确,因此问题可能不在您的示例的两行中。以下是一些相关领域供您查看。

<强>权限 运行python脚本的用户必须具有适当的权限(读,写,执行)。我从评论中看到你已经检查了这个。

您正在运行什么命令 如果命令在字面上输入到源代码中,就像在示例中一样,那么您就知道正在运行什么命令,但是如果您正在生成它的任何部分(例如,操作数列表,输出文件的名称,其他参数)等等),确保代码中生成命令的部分没有错误。例如,在调用os.system(cmd)之前考虑包含print("About to execute: " + cmd)之类的行,以便您可以确切了解将要运行的内容。

直接调用命令 如果以上所有内容都很好,请尝试直接在服务器上的终端上执行命令。那你得到什么输出。问题可能在于底层命令本身而不是你的python代码。