Python 我如何调整我的命令

Python 我如何调整我的命令,python,terminal,Python,Terminal,我当前用于测试集合的命令是 python eval.py --test_data_path=PATH_TO_IMAGES --gpu_list=0 --checkpoint_path=/tmp/east_icdar2015_resnet_v1_50_rbox/ \ --output_dir=PATH_TO_END_LOCATION 然而,我现在想做的是,给他们一个文件作为输入,该文件具有所有图像的路径,而不是我以前所做的,提供一个包含所有图像的文件夹 文件的内容看起来有点像这样 data/pr

我当前用于测试集合的命令是

python eval.py --test_data_path=PATH_TO_IMAGES --gpu_list=0 --checkpoint_path=/tmp/east_icdar2015_resnet_v1_50_rbox/ \
--output_dir=PATH_TO_END_LOCATION
然而,我现在想做的是,给他们一个文件作为输入,该文件具有所有图像的路径,而不是我以前所做的,提供一个包含所有图像的文件夹

文件的内容看起来有点像这样

data/processed/10/blueprint-0.png
data/processed/10/blueprint-15.png
data/processed/10/blueprint-16.png
data/processed/10/blueprint-17.png
data/processed/10/blueprint-18.png
如何调整我的命令来完成该任务,或者甚至编写一个python代码,将它们全部放在一个目标文件夹中,我可以重用我的第一个方法


编辑:我知道了如何管理它,但我需要一个正则表达式,它将接受2个数值,例如在第一行data/processed/10/blueprint-0.png中,我需要一个正则表达式,它将10分配给变量a,0分配给变量b。

您需要更改的内容取决于您的程序中如何使用测试数据路径。如果程序的某些部分以后需要文件列表而不是目录,那么这很简单:打开作为参数传递的文件,调用该文件的列表以获取文件名,或者验证文件是否存在,然后继续传递文件名。

您要做的:

创建包含路径的输入文件,例如infiles.txt 从该文件读取输入文件位置 使用shutil.copy将文件复制到该位置 下面是一个示例代码:

import os, shutil
from argparse import ArgumentParser as argpars
parser = argpars(description='')
parser.add_argument('--test_data_file', nargs=1, type=str)
parser.add_argument('--dest_loc', nargs=1, type=str)
args = parser.parse_args()

with open(args.test_data_file[0], 'r') as f:
    file_locations = [ff.strip() for ff in f.readlines()]


for loc in file_locations:
    print(os.path.join(args.dest_loc[0], loc.split('/')[-1]))
#   shutil.copy(loc, os.path.join(args.dest_loc[0], loc.split('/')[-1]))
命令类似于

python your_script.py --test_data_file infiles.txt --dest_loc some_folder
编辑 关于正则表达式问题:

import re
re.findall(r'\d+', 'data/processed/10/blueprint-0.png')
# or in the example above
re.findall(r'\d+', loc)

您好,谢谢您的回答,但同时我键入了自己的代码,但是我需要有关编辑中的正则表达式部分的帮助,请检查并提供这方面的帮助答案,如果可能,我将接受。请尝试:re.findallr'\d+'、'data/processed/10/blueprint-0.png'或re.findallr'\d+',以上示例中的loc谢谢我将检查1分钟。这里可以找到关于regex问题的更详细的答案:请检查我的编辑并提供regex方面的帮助(如果可能)。对我来说,你问了一个问题,并且在其他人回答之前,继续部分解决你自己的问题,从而使他们的答案无效,表示你还不应该问。事实上,我一直在努力,而不是坐着等待答案,这应该被视为一个积极的迹象,而不是相反。