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

标签 python linux file-io 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 命令提示符下运行程序,如下所示:(其中我需要分别为输入和输出文件名输入“-i”和“-o”)

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

我试过输入文件名

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

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

抱歉,如果这个问题非常明显......我是 Python 的新手

最佳答案

使用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")

....等等

关于python - 如何在 Linux 命令提示符下调用外部输入和输出文件名来运行 Python 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30870186/

相关文章:

c++ - 使用Vector函数C++从文件中读取特定数据

python - pyserial 将 unicode 字符串作为字节数组发送

python - Pyspark 中的 Ngram 频率排名

python - 如何将具有不同时区的字符串转换为日期时间对象?

python - 对列进行排名并选择列名称

c - 如何从网站的 DNS 获取负载均衡器的 URL 或 IP?

php - xsl文件从linux服务器加载到php中

linux - 如何提高Linux集群上计算节点的并行处理速度?

javascript - 限制文件输入中的文件选择数量

android - 将文件从系统存储(/data/data...)复制到外部存储