我对Python很陌生,对stdin stdout方法甚至更新.不过,我需要使我的脚本可用于UNIX命令,以便例如使用我的脚本一次处理2个输入文件.

该脚本与命令行参数完美配合:

newlist = []

def f1()

....

def f2(input_file):

vol_id = sys.argv[3]

for line in input_file:

if ... :

line = line.replace('abc','def')

line = line.replace('id', 'id'+vol_id)

....

newlist.append(line)

return newlist

def main():

if len(sys.argv) < 4:

print 'usage: ./myscript.py [file_in... file_out... volume_id]'

sys.exit(1)

else:

filename = sys.argv[1]

filename_out = sys.argv[2]

tree = etree.parse(filename)

extract(tree)

input_file = open(filename, 'rU')

change_class(input_file)

file_new = open(filename_out, 'w')

for x in newlist:

if '

' in x:

x = x.replace('

', '')

print>>file_new, x

当我尝试向其添加stdin stdout时,首先遇到一个问题,即首先读取相同的输入文件,并且由于这个原因进行了一些修改,因此实际上只能打开一次.这是我修改过的main():

filename = sys.argv[1]

filename_out = sys.argv[2]

if filename == '-':

filename = sys.stdin

else:

input_file = open(filename, 'rU')

if filename_out == '-':

filename_out = sys.stdout

file_new = filename_out

else:

file_new = open(filename_out, 'w')

input_file = open(filename, 'rU')

tree = etree.fromstring(input_file)

extract(tree)

change_class(input_file)

for x in newlist:

if '

' in x:

x = x.replace('

', '')

print>>file_new, x

然后我像这样运行我的脚本:

./myscript.py–volumeid输出文件

我得到了这个错误信息:

Traceback (most recent call last):

File "./myscript.py", line 191, in

main()

File "./myscript.py", line 175, in main

input_file = open(filename, 'rU')

TypeError: coercing to Unicode: need string or buffer, file found

我究竟做错了什么?

python重复输入上面指令_stdin stdout python:如何重复使用同一输入文...相关推荐

  1. python stdin和stdout_stdin似乎比stdout(python)慢得多.为什么?

    我有两个需要相互通信的 python程序(一个是子进程).目前我通过stdin和stdout这样做.然而,写入子进程的标准似乎很慢. a.py,一个采用任意行输入并打印时间的程序: from time ...

  2. python查看指令的方法python -h

    python查看指令的方法python -h 进入cmd 输入 python -h C:\Users\Administrator>python -h usage: python [option] ...

  3. 《Python零基础快乐学习之旅》学习笔记4——基本输入与输出

    第4章 基本输入与输出 4.1 Python的辅助说明help() help()函数可以列出某一个Python的指令或函数的使用说明. >>> help(print) Help on ...

  4. 无重复最长子串python_leetCode 无重复字符的最长子串 python(Longest Substring Without Repeating Characters) python...

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. Default 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &quo ...

  5. python中可以作为定界符_在 Python 中,字典和集合都是用一对 作为定界符,字典的每个元素有两部分组成,即 和 ,其中 不允许重复。_学小易找答案...

    [多选题]路由器A的G0/0/1接口配置信息如下,下列说法正确的有?(多选) acl number 3000 rule 5 deny 17 rule 10 deny 89 rule 15 deny 6 ...

  6. py哪个函数可以返回输入的变量类型_[Python基础]二、pycharm,python变量

    2.1 Python简介 Life is short,you need Python (人生苦短,我用Python) 解释器: 将其他语言翻译成机器语言的工具,称为编译器 编译器的翻译方法有两种: 编 ...

  7. mac的python怎么输入中文_无法在python IDE(Mac OS X)中输入unicode

    我试图在默认的python IDE中收集一些unicode原始输入,据我所知,它应该很简单:>>> c = raw_input() 日本語 >>> print c ...

  8. iOS快捷指令:执行Python脚本(利用iSH Shell)

    文章目录 前言 核心逻辑 配置iSH 安装Python 创建Python脚本 配置启动文件 测试效果 快捷指令 前言 iOS快捷指令所能做的操作极为有限.假如快捷指令能运行Python程序,那么可操作 ...

  9. python输入语句没有定义_1st Python基础语法

    1.1 Python的介绍和安装 1.1.1 编程语言的分层机器语言:直接和硬件打交道,01代码,控制硬件功能.但对于人太难记忆和理解了. 汇编语言(嵌入式开发用到):用人熟悉的语言来表示01代码不出 ...

最新文章

  1. python代码壁纸-一个爬取壁纸的python代码
  2. python怎么写文件-来看文件处理Python怎么写?
  3. ARM--MDK5 Software Packs下载
  4. shell 编程中空格的使用,双引号,单引号,反引号
  5. Netty事件传播机制
  6. ACCESS在哪输入SQL语句
  7. Java操作excel工具easyExcel
  8. oracle之数据处理之约束1
  9. 【改进】C# WinForm捕获全局异常 SamWang
  10. 数值分析的matlab实验总结,数值分析及其MATLAB实验(第2版)
  11. Mac上的python的数据分析与挖掘学习之路(一)
  12. python微博相册爬虫
  13. 【檀越剑指大厂--网络安全】网络安全学习
  14. Python:什么叫自定义模块?
  15. linux exchange 账号,linux exchange服务器配置
  16. 计算机仿真稿件没有消息,计算机核心期刊排名和投稿信息(2)
  17. 鸿蒙喜欢吃什么,巴西龟吃什么食物,一般一天喂几次?
  18. php保存文件快捷键,word保存快捷键是ctrl加什么
  19. vue技术分享ppt_胡中南:Web端GIS技术新进展 | GTC专题论坛报告(视频+PPT+速记)
  20. 异质图经典方法总结(19年)

热门文章

  1. 1、vue 笔记之 组件
  2. HttpServletResponse.getWriter().print乱码,request.getHeader乱码,解决方法
  3. ssh报错解决 ECDSA host key for 123.56.11.181 has changed and you have requested strict checking.
  4. js 数字千分位展示
  5. javascript event
  6. java ee项目部署到服务器上405,HTTP状态405 - HTTP POST方法不受此URL支持:采用的GlassFish服务器的NetBeans...
  7. linux空文件夹大小,[转载]linux 查看文件和文件夹大小
  8. Oracle 每个session的限制,限制oracle普通用户能且只能kill自己的会话
  9. H265编码等级以及图像的基础知识
  10. Android深度探索(卷一)第四章读书笔记