【问题标题】:How can I adjust my command [closed]如何调整我的命令 [关闭]
【发布时间】:2018-01-25 08:18:41
【问题描述】:

我目前用来测试我的集合的命令是

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 我需要一个将分配 @ 的正则表达式987654324@ 到变量 a0 到变量 b

【问题讨论】:

  • 对我来说,你问了一个问题,直到其他人回答,继续(部分)解决你自己的问题,从而使他们的答案无效,这表明你不应该问(还)。
  • 事实上,我仍然在尝试自己而不是坐下来等待答案这一事实应该被视为一个积极的信号,而不是相反。

标签: python terminal


【解决方案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)

【讨论】:

  • 您好,感谢您的回答,但同时我输入了自己的代码,但是我需要编辑中的正则表达式部分的帮助,如果可能的话,请检查并在这方面提供一个有用的答案然后我'会接受的。
  • 在示例中尝试:re.findall(r'\d+', 'data/processed/10/blueprint-0.png') 或 re.findall(r'\d+', loc)以上
  • 谢谢,我会检查一下。
  • 正则表达式问题的更详细答案可以在这里找到:stackoverflow.com/a/4289348/5172579
【解决方案2】:

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

【讨论】:

  • 如果可能,请检查我的编辑并在正则表达式方面提供帮助。
猜你喜欢
  • 1970-01-01
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多