从文件或 STDIN 读取

2024-01-07

我编写了一个命令行实用程序,它使用 getopt 来解析命令行上给出的参数。我还希望文件名成为可选参数,例如 grep、cut 等其他实用程序中的文件名。因此,我希望它具有以下用法

tool -d character -f integer [filename]

我该如何实施以下内容?

  • 如果给出了文件名,则从文件中读取。
  • 如果未给出文件名,则从 STDIN 读取。

The 文件输入 http://docs.python.org/library/fileinput.html模块可以做你想做的事 - 假设非选项参数在args then:

import fileinput
for line in fileinput.input(args):
    print line

If args那么是空的fileinput.input()将从标准输入读取;否则它会依次从每个文件中读取,类似于 Perl 的方式while(<>).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从文件或 STDIN 读取 的相关文章

随机推荐

  • 加载特定 MIME 类型的本机客户端 Chrome 扩展

    我为 Google Chrome Web 浏览器创建了一个本机客户端应用程序 用于播放特殊类型的音频文件 伟大的 此时该部分效果很好 我已准备好进入下一阶段 与世界分享这个应用程序 我需要这部分的帮助 根据我的理解 分发此应用程序的最佳方法
  • 如何预加载 angular2 视图,以便在首次加载时不会闪烁白页?

    我正在用纯 JS 构建一个 Angular 2 应用程序 我的问题是 当我从一个页面更改到另一个页面时 它会闪烁白色页面 直到呈现新视图 仅当我第一次访问所有组件时 才会发生这种情况 如果我第二次转到相同的路线 则页面加载时不会出现白页 我
  • 如何调整分面 tmap 图中的分面行标签高度?

    我正在使用带有行和列的 tmap 包绘制多面地图 我无法调整行的分面标签的高度 这会导致分面标签在大于特定大小或旋转时被裁剪 我已经尝试调整所有tm layout 小组的论据包括panel label height panel label
  • Ansible 循环相关问题

    我有一个剧本 其中有多个角色和串行设置 因此它首先在一台机器上运行 然后在其余机器上运行 在其中一个角色中 我有以下任务 name getting dbnodes IP addresses local action shell echo f
  • WPF 组合框样式

    下面是我的 ComboBox 样式代码 想法是在 ComboBox 周围放置边框并重用该样式
  • 我无法运行 hello.py 并获取 SyntaxError: invalid syntax

    我对 Python 和整个编程都很陌生 很抱歉问了一个看似重复的问题 但是 我无法使用以下格式运行我自己的代码 C Users Archangel gt python hello py 这是 hello py 包含的内容 Define a
  • 递归或循环[重复]

    这个问题在这里已经有答案了 我有这个方法可以计算一些统计数据 public void calculateAverage int hour if hour 20 int data 0 int times 0 for CallQueue cq
  • “+”(加号)CSS 选择器是什么意思?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 例如 p p Some declarations 我不知道是什么 方法 这和仅仅定义样式
  • HTTPS 从根域(即 apex 或“naked”)重定向到“www”子域,而浏览器不会抛出异常?

    DNS A 记录要求将 IP 地址硬编码到应用程序的 DNS 配置中 哪个Heroku 建议避免 https devcenter heroku com articles apex domains Heroku 建议两种解决方法 使用在顶端支
  • 定期刷新 golang 中的通道

    我需要定期刷新频道的内容 我用 len 做到了这一点 我想知道是否有更好的方法来做到这一点 http play golang org p YzaI 2c F http play golang org p YzaI 2c F package
  • iOS 上的波形

    我正在寻找如何绘制声音幅度 I found http supermegaultragroovy com 2009 10 06 drawing waveforms http supermegaultragroovy com 2009 10 0
  • Preon 的 Java 或 C++ 等效项?

    Preon https github com preon preon是一个用于创建二进制编解码器的 Java 库 您只需在类的数据成员中放置关于它们与位字段的对应关系的注释 例如用于特定字段的位数 并且基于此类 该库构建一个 Codec 对
  • 如何在渲染后动态更改 ExtJS GridPanel viewconfig 上的 getRowClass 函数

    我有一个Ext grid Panel使用返回自定义类的函数 该自定义类用于通过重写 getRowClass 函数对网格中的行进行颜色编码 这很好用 但我想为用户提供更改网格着色标准的选项 在下面的示例中 我按 严重性 属性进行着色 但我想将
  • 如何使用 ruby​​ 日期常量 GREGORIAN、JULIAN、ENGLAND 甚至 ITALY

    因为大写 它们是常量 我很高兴学习 ruby 的日期助手 1 9 3p125 057 gt Date ABBR MONTHNAMES gt nil Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov De
  • 从 R 数据框中清理“Inf”值

    在 R 中 我有一个操作可以创建一些Inf当我转换数据框时的值 我想把这些Inf值转化为NA价值观 我的代码对于大数据来说很慢 有没有更快的方法 假设我有以下数据框 dat lt data frame a c 1 Inf b c Inf 3
  • 如何对带有钩子的元素数组使用多个引用?

    据我了解 我可以对单个元素使用 refs 如下所示 const useRef useState useEffect React const App gt const elRef useRef const elWidth setElWidth
  • 如何在ubuntu 19.04中完全卸载brew并重新安装brew

    我在 ubuntu 19 04 上安装了 homebrew 它意外停止 因此安装未完成 但文件夹已经创建了 如果我再次安装 sudo apt install linuxbrew wrapper 我收到一条消息 linuxbrew wrapp
  • 如何使用 gradle、jaxb 和 xjc 从 xsd 生成 jaxb 类,类应该具有 XmlRootElement

    我们尝试使用 gradle xsd 和 xjc 生成 JAXB 类 并且 JAXB 类应该具有 XmlRootElement 注释 以便它可以用于公开为 Web 服务响应 我们正在关注此链接http azagorneanu blogspot
  • SysLogHandler 消息在远程服务器上分组在一行上

    我正在尝试使用 python 日志记录模块将消息记录到远程 rsyslog 服务器 消息已被接收 但它会将每条消息的消息连接在一行上 这是我的代码的示例 to syslog priority dict Level EMERGENCY eme
  • 从文件或 STDIN 读取

    我编写了一个命令行实用程序 它使用 getopt 来解析命令行上给出的参数 我还希望文件名成为可选参数 例如 grep cut 等其他实用程序中的文件名 因此 我希望它具有以下用法 tool d character f integer fi