如何使用argparse创建一个读取文件内容的Python3文件?

时间:2017-11-05 07:12:09

标签: python linux bash argparse

我现在只是一个Python noob,因为我只使用了几天而且我想知道如何编写一个使用argparse来读取包含大量URL的文件内容的Python脚本并将内容设置为变量?例如:

root@user:~# python myscript.py -f "URLs.txt"

然后python shell将打印变量

URLs = The contents of the file
print(URLs)

导致:

root@user:~# python myscript.py -f "URLs.txt"
https://stackoverflow.com/
https://stackoverflow.com/
https://stackoverflow.com/
root@user:~#

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

首先,我建议:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--foo')
args = parser.parse_args()
with open(args.foo, 'r') as f:
    lines = f.read()
    print(lines)

在我的目录中使用ramdom文件生成:

0029:~/mypy$ python stack47119114.py -f foo.txt
    1,    2,     
    3,    4,    5

我们也可以使用argparse.FileType打开文件,但最好使用with open语法。对于更大的问题,我将parse_args放在if __name__...块中,并在函数中定义操作。

但基本观点是argparse应该主要使用解析器,而不是完整的动作代码。其目的是找出用户想要的东西。在一个真正的问题中,对该输入进行操作是单独定义的函数和类的工作(甚至可能在导入的模块中)。