【发布时间】:2011-11-04 12:14:30
【问题描述】:
我有一个简短的脚本有问题,如果你能看一下就太好了!
import os
import subprocess
root = "/Users/software/fmtomov1.0/remaker_lastplot/source_relocation/observed_arrivals_loc3d"
def loop_loc3d(file_in):
"""Loops loc3d over the source files"""
return subprocess.call (['loc3d'], shell=True)
def relocation ():
for subdir, dirs, files in os.walk(root):
for file in files:
file_in = open(os.path.join(subdir, file), 'r')
return loop_loc3d(file_in)
我认为脚本很容易理解,非常简单。但是我没有得到想要的结果。简而言之,我只想让“loc3d”对“observed_arrivals_loc3d”目录中存在的所有文件内容进行操作,这意味着我需要打开所有文件,这就是我实际所做的。事实上,如果我在之后尝试“打印文件”:
for subdir, dirs, files in os.walk(root)
我会得到每个文件的名称。此外,如果我在
之后尝试'print file_in'file_in = open(os.path.join(subdir, file), 'r')
对于每个文件,我都会得到类似这样的内容:
<open file '/Users/software/fmtomov1.0/remaker_lastplot/source_relocation/observed_arrivals_loc3d/EVENT2580', mode 'r' at 0x78fe38>
子进程仅在一个文件上单独测试过,并且可以正常工作。
总的来说,我没有收到任何错误,但只有 -11,这对我来说绝对没有任何意义。 loc3d 的输出应该完全不同。
那么代码对您来说看起来不错吗?有什么我想念的吗?有什么建议吗?
感谢您的帮助!
【问题讨论】:
-
这对我来说有点难以理解。无论如何,我尝试了您在下面所说的内容,但没有任何反应(没有输出没有错误)。在这个阶段,我确实认为这是一个“loc3d”错误,所以就 python 而言,可能一切都很好。将尝试更深入地研究 loc3d。
标签: python file subprocess