我有一个python脚本(script.py(,每个输入(input.txt(需要一个文件,每个输出(output.txt(需要一个文件。另外,该脚本需要来自 model.pcl 的其他数据。我通过控制台执行脚本。对于窗口,它看起来像这样:
Type input.txt | python script.py model.pcl output.txt
我想将此脚本应用于 10,000 个文件并将结果保存在单独的 txt 文件中。
我知道如何使用python做到这一点:
import subprocess
for i in range(1, 10001):
e = 'type input_%s.txt | python script.py model.pcl output/output_%s.txt' % (i,i)
subprocess.call(e, shell=True)
但这不是一个理想的解决方案,因为在这种方法中,我无法为输入文件指定文件夹(input/input_%s.txt(。如果我尝试这样做,我会收到一个错误:
the syntax of the command is incorrect.
Windows 机器还有其他选项吗?
这应该从Windows CMD提示符中完成必要的操作:
FOR /L %# IN (1,1,10001) DO @TYPE "C:PathToinput_%#.txt" | python script.py model.pcl "C:PathTooutput_%#.txt"
我在python中遇到了类似的问题。当我在列表中添加所有项目时,它对我有用。
import subprocess
for i in range(1, 10001):
e = ['type input_%s.txt | python script.py model.pcl output/output_%s.txt' % (i,i)]
subprocess.call(e, shell=True)
你能测试一下,让我知道它是否适合你吗?
一个选项与此类似
#Path to all files
path = os.getcwd()
#Puts file names to a variable
files = os.listdir(path)
#Gets just the .txt
txtFiles = glob.glob(path + "/*.txt")
这将允许您在特定文件夹中执行所有.txt文件,理想情况下是放置脚本但可以随意修改的文件夹