【问题标题】:Script to execute multiple python files for Windows为 Windows 执行多个 python 文件的脚本
【发布时间】:2026-02-23 04:20:04
【问题描述】:

我有一个 python 脚本 (script.py),每个输入需要一个文件 (input.txt),每个输出需要一个文件 (output.txt)。另外,该脚本需要来自 model.pcl 的额外数据。我通过控制台执行脚本。对于 Windows,它看起来像这样:

输入 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 机器还有其他选择吗?

【问题讨论】:

  • 不要重复发布! (Applying python script for multiple files in Windows) 您已经编辑了另一个问题,因此它将被放入审核队列,并且在您修复导致原始问题关闭的问题一段时间后,它将重新打开...
  • @aschipfl 对不起。我以为我之前的问题已经结束了。如果我删除另一个问题会更好吗?
  • 是的,我认为最好删除另一个已关闭的问题然后...
  • input/input_%s.txt - 您是否尝试指定完整路径?
  • @wwii 是的,我试过了。

标签: python for-loop cmd windows-scripting


【解决方案1】:

这应该可以满足 Windows CMD 提示的需要:

FOR /L %# IN (1,1,10001) DO @TYPE "C:\Path\To\input_%#.txt"   | python script.py model.pcl "C:\Path\To\output_%#.txt"

【讨论】:

    【解决方案2】:

    我在 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)
    

    您能测试一下并告诉我它是否适合您吗?

    【讨论】:

    【解决方案3】:

    一个选项与此类似

    #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 文件,理想情况下是放置脚本但可以轻松修改的文件夹

    【讨论】: