如何在 Linux 命令提示符下将外部输入和输出文件名调用到 运行 Python 程序

How to call external input and output file names to run Python Programs at Linux Command Prompt

在我的 Python 程序中,我有打开输入文件的行:

f = open('/home/han/fasta.txt',"r")

并写入输出文件:

with open("output.txt", "w") as text_file:
    text_file.write ("{:<16}{:<16}{:<16}{:<16}{:<16}".format('','A','C','G','T')+'\n')

但是,每次我想运行 Linux 命令提示符中的Python 程序有不同时,我必须在代码中更改输入和输出文件名。 我想知道如何在 Linux 命令提示符下实现 运行ning 程序,如下所示:(其中我需要为输入和输出文件名输入“-i”和“-o”分别)

$ python codon.py -i fasta.txt -o output.txt

我已经尝试输入文件名

from sys import argv
script, filename = argv
f = open(filename,"r")

但我觉得它不一定需要命令提示符中的“-i”。

抱歉,如果问题非常明显...我是 Python

的新手

如果您不想使用 -i,这不是强制性的,您可以执行以下操作:

python codon.py fasta.txt output.txt

您可以使用 argv[1]argv[2]:

获取名称
from sys import argv
inputfile = argv[1]
outputfile = argv[2]
f = open(inputfile ,"r")
...

使用python标准argparse

import argparse

parser = argparse.ArgumentParser(description='My app description')
parser.add_argument('-i', '--input', help='Path to input file')
parser.add_argument('-o', '--output', help='Path to output file')
args = parser.parse_args()

f = open(args.input,"r")

..等等