-1

我有一段代码生成 .dat 和 .hdf5 文件,将它们保存到运行生成代码的目录中。我想知道是否有一种方法可以从命令行以类似于以下工作方式的方式指定这两个文件的保存路径,例如:

h5dump example.hdf5 > tmp.txt

在理想的世界中,我想要以下内容:

python python_code.py > /PATH/TO/DESIRED/DIRECTORY/

将保存两个文件(.dat 和 .hdf5)的位置。当然,我可以硬编码 /PATH/TO/DESIRED/DIRECTORY/ 但我将对 python_code.py 进行小的更改以生成不同的输出文件,并且能够快速指定它们保存的位置以保持不同的运行会很方便分离。

4

1 回答 1

0

如果你运行代码没有>

python python_code.py /PATH/TO/DESIRED/DIRECTORY/

然后你得到路径sys.argv[1]

import sys

if len(sys.argv) > 1:
   path = sys.argv[1]
else:
   path = '/default/path/'

print(path)

现在您可以将其path用于其余代码


如果您没有默认路径,则可以打印消息并退出程序

import sys

if len(sys.argv) > 1:
   path = sys.argv[1]
else:  
   print("You forgot path")
   exit(1)

print(path)

对于更复杂的论点,例如

python python_code.py --input path1 --output path2 --format hd5f

python python_code.py -i path1 -o path2 -f hd5f

python python_code.py --help

使用模块argparse

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-i', '--input',  default='/default/input/path', help="path to input file [default: %(default)s]")
parser.add_argument('-o', '--output', default='/default/output/path', help="path to output file [default: %(default)s]")
parser.add_argument('-f', '--format', default='hd5f', help="outputformat [default: %(default)s]")
args = parser.parse_args()

print(args.input)
print(args.output)
print(args.format)
于 2019-12-28T13:25:48.300 回答