在多个文件上使用python工具

在多个文件上使用python工具,python,windows,batch-file,Python,Windows,Batch File,我使用python编写了一个工具,它通过在cmd中传递pdf文件来分析pdf文件 c:\python "my_tool.py" -s "my_pdf.pdf" 我想在1000个文件上测试这个工具。如何在所有1000个文件上运行该工具 我用过这个 for /f %%f in ('dir /b C:\Users\Test\Desktop\CVE_2010-2883_PDF_25files') do echo %%f 但是如何指定(工具)和(-s)参数您可以使用grep将所有.pdf文件传递给脚本

我使用python编写了一个工具,它通过在cmd中传递pdf文件来分析pdf文件

c:\python "my_tool.py" -s "my_pdf.pdf"
我想在1000个文件上测试这个工具。如何在所有1000个文件上运行该工具

我用过这个

for /f %%f in ('dir /b C:\Users\Test\Desktop\CVE_2010-2883_PDF_25files') do echo %%f

但是如何指定(工具)和(-s)参数

您可以使用
grep
将所有
.pdf
文件传递给脚本

c:\python grep *.pdf|"my_tool.py" -s 
或者使用此脚本:

for i in $(\ls -d *.pdf)
do
    python "my_tool.py" -s $i
done

如果您有Unix
find
命令,则可以使用

find . -type f -name "*.pdf" -exec c:\python "my_tool.py" -s {} \;

这将在当前目录中的每个pdf文件上运行您的命令

通过确保该工具只需搜索一个目录中的所有pdf文件,您的生活将更加轻松:

import glob
import os

def get_files(directory):
    for i in glob.iglob(os.path.join(directory, '*.pdf')):
       do_something(i)

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('-f', '--file', help='enter filename')
    parser.add_argument('-d', '--directory', help='enter directory of pdf files')
    args = parser.parse_args()
    if args.directory:
        get_files(args.directory)
    if args.file:
        do_something(args.file)
试着这样做:

@echo off
for /f %%f in ('dir /a-d/b C:\Users\Test\Desktop\CVE_2010-2883_PDF_25files\*.pdf') do (
  "c:\python\my_tool.py" -s "%%~dnxf")

Windows批处理脚本不是很好,你可以编写一个python程序来完成这项工作。你能帮我吗?我在Windows中编写的工具。有什么方法可以做到这一点吗?我在windows上工作,你知道如何在windows上做到这一点吗?如果我想扫描这个目录中的所有文件怎么办?这样做是否正确:('dir/a-d/bc:\Users\Test\Desktop\CVE\u 2010-2883\u PDF\u 25files\*)。。。python它不是一个目录,它是一个标识符,用
*.
代替
*.pdf