【问题标题】:How would I make a Python3 file with argparse that would read the contents of a file?我将如何使用 argparse 制作一个可以读取文件内容的 Python3 文件?
【发布时间】:2018-04-17 13:31:29
【问题描述】:

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

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:~#

任何帮助将不胜感激!

【问题讨论】:

  • 你的意见是什么?

标签: python linux bash argparse


【解决方案1】:

首先我建议:

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)

在我的目录中有一个随机文件产生:

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

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

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

【讨论】:

  • 确认此答案适用于 Linux (WSL) 上的 Python 3.6。
猜你喜欢
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
相关资源
最近更新 更多