0

我正在尝试制作一个脚本,其中 python 遍历一个目录,找到所有以 *ref.SDAT 结尾的文件,然后将它们全部打开。

到目前为止,我已经完成了文件排序的过程。想要的文件被放入 reflist:

import os
import glob
import subprocess

os.chdir("/Users/BabyJ/Desktop/MRSDATA")
reflist = glob.glob('*raw_ref.SDAT')

print "These are the ref files:"
for i in reflist:
     os.system('open+%s') %i

我不知道如何构造语法,以便 os.system 将打开列表的所有组件。

4

2 回答 2

1

%运算符希望字符串作为其'open+%s'左侧。你提供它的返回值os.system()。另外,我认为您想要一个空格,而不是+字符串中的 a 。

尝试这个:

os.system('open %s'%i)
于 2013-09-12T19:50:23.743 回答
0

我假设根据您的使用情况判断您使用的open是 Mac 或 Unix 系统。如果是这种情况,请使用以下任一方法让您启动并运行。

for i in reflist:
    os.system('open ' + '%s' % i)

或者:

for i in reflist:
    subprocess.call('open ' + '%s' % i, shell = True)

使用 subprocess 是更好的解决方案,因为 os.system 虽然在技术上并未从该语言中消失,但根据官方文档在 Python 中已弃用。

希望有帮助。

编辑:

如果您在startfor中使用 windows sub open

于 2013-09-12T20:10:24.970 回答