我该如何调整我的命令

时间:2018-01-25 08:18:41

标签: 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/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

2 个答案:

答案 0 :(得分:1)

你做了什么:

  • 创建包含路径的输入文件,例如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)

答案 1 :(得分:0)

您需要更改的具体内容取决于程序中test_data_path的使用方式。如果程序的某些部分后来需要一个文件列表而不是一个目录,那么它是一个简单的:open作为参数传递的文件,在其上调用list()来获取名称的文件,可选择验证它们是否存在,并传递名称。