返回顶部
首页 > 资讯 > 后端开发 > Python >释译python fileinput中的
  • 355
分享到

释译python fileinput中的

释译pythonfileinput 2023-01-31 05:01:51 355人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

fileinput模块提供处理一个或多个文本文件的功能, 可以通过使用for..in来循环读取一个或多个文本文件内容.例子中的文件,1.txt1a2a3a4a2.txt1b2bDESCRIPTION   Typical use is:   

fileinput模块提供处理一个或多个文本文件的功能, 可以通过使用for..in来循环读取一个或多个文本文件内容.

例子中的文件,

1.txt
1a

2a
3a
4a

2.txt
1b
2b

DESCRIPTION

   Typical use is:

   

       import fileinput

       for line in fileinput.input():

           process(line)

   

   This iterates over the lines of all files listed in sys.argv[1:],

   defaulting to sys.stdin if the list is empty.  If a filename is '-' it

   is also replaced by sys.stdin.  To specify an alternative list of

   filenames, pass it as the argument to input().  A single file name is

   also allowed.

[译]这个迭代了所有文件的行在sys.argv[1:]中,如果列表为空则默认为标准输入,如果文件名为”-”它也为标准输入。指定一个文件名列表来做为参数传递给input,一个单独的文件名也是允许的。

[例]

(1)#!/usr/bin/env python

import fileinput,sys

for line in fileinput.input(sys.argv[1:]):

    pass

print fileinput.lineno(),

命令行下,输入Python test.py 1.txt 2.txt

(2)#!/usr/bin/env python

import fileinput

for line in fileinput.input(['1.txt','2.txt']):

    pass

print fileinput.lineno(),

(3) #!/usr/bin/env python

import fileinput

for line in fileinput.input(“1.txt”):

    pass

print fileinput.lineno(),

   Functions filename(), lineno() return the filename and cumulative line

   number of the line that has just been read; filelineno() returns its

   line number in the current file; isfirstline() returns true iff the

   line just read is the first line of its file; isstdin() returns true

   iff the line was read from sys.stdin. Function nextfile() closes the

   current file so that the next iteration will read the first line from

   the next file (if any); lines not read from the file will not count

   towards the cumulative line count; the filename is not changed until

   after the first line of the next file has been read.  Function close()

   closes the sequence.

[译]函数filename,lineno返回的读取的文件名与已经读的累计的行数;filelineno返回当前文件的行数的函数;如果读的是它自己的文件第一行,那么isfirstline是正确的。如果读的是来自标准输入那么isstdin返回真。函数nextfile关闭当前文件以致下一个迭代器将从下一个文件第一行读起;将不会累计上一个文件的行数.这个文件名不会改变,直到读取下一个文件的第一行。函数close关闭序列。

[例]

(1) #!/usr/bin/env python

import fileinput

for line in fileinput.input(['1.txt']):

    pass

print fileinput.filename(),fileinput.lineno()

[root@newpatch3 /home/python]#python test.py

1.txt 4

(2)   #!/usr/bin/env python

import fileinput   

for line in fileinput.input(['1.txt','2.txt']):

   pass

print fileinput.filename(),":",fileinput.filelineno()

print "1.txt and 2.txt total line:",fileinput.lineno()

[root@newpatch3 /home/python]#python test.py

2.txt : 2

1.txt and 2.txt total line: 6

大家看到没,filelineno与lineno的差异了吧?

(3) #!/usr/bin/env python

import fileinput,sys

for line in fileinput.input([‘1.txt’]):

   if fileinput.isfirstline():

       print line,

       sys.exit(0)

[root@newpatch3 /home/python]#python test.py

1a

原1.txt中有1a,2a,3a,4a四行数,但我们通过条件判断,只取第一条,来演示isfirstline功能.

(4) #!/usr/bin/env python

import fileinput

for line in fileinput.input():

   if fileinput.isstdin():

       print "isstdin"

[root@newpatch3 /home/python]#python test.py

This is stdin

Isstdin

   Before any lines have been read, filename() returns None and both line

   numbers are zero; nextfile() has no effect.  After all lines have been

   read, filename() and the line number functions return the values

   pertaining to the last line read; nextfile() has no effect.

[译]没有行读取前,filename返回None和行号为0,nextfile也不起作用。在所有行被读后,filename和获取行号的函数才能返回到已经读的当前行。Nextfile才能起作用。

[例]自己测试

   All files are opened in text mode. If an I/O error occurs during

   opening or reading a file, the IOError exception is raised.

    [译]所有的文件以文本模式打开,如果在打开或者读一个文件时发生了一个I/O错误,将会产生一个IOError异常。

   If sys.stdin is used more than once, the second and further use will

   return no lines, except perhaps for interactive use, or if it has been

   explicitly reset (e.g. using sys.stdin.seek(0)).

[译]如果标准输入用了多次,第二次将不会返回任何行,除在交互模式下,或者将其重置。

[例]

#!/usr/bin/env python

import fileinput,sys

for line in fileinput.input():

    print "line1:",line,

fileinput.close()

sys.stdin.seek(0)

for line in fileinput.input():

    print "line2:",line,

fileinput.close()

[root@newpatch3 /home/python]#python test.py

a

b

c

line1: a

line1: b

line1: c

e

f

g

line2: e

line2: f

line2: g

   Empty files are opened and immediately closed; the only time their

   presence in the list of filenames is noticeable at all is when the

   last file opened is empty.

   

   It is possible that the last line of a file doesn't end in a newline

   character; otherwise lines are returned including the trailing

   newline.

   

   Class FileInput is the implementation; its methods filename(),

   lineno(), fileline(), isfirstline(), isstdin(), nextfile() and close()

   correspond to the functions in the module.  In addition it has a

   readline() method which returns the next input line, and a

   __getitem__() method which implements the sequence behavior.  The

   sequence must be accessed in strictly sequential order; sequence

   access and readline() cannot be mixed.

    [译]类fileinput是这个的实例;它的方法有filename(),….对应的功能在这个模块中。除此之外还有readline方法,返回下一行输入,和__getitem__()方法。该序列中,必须严格按顺序访问;序例访问和readline不能混淆。

   Optional in-place filtering: if the keyWord argument inplace=1 is

   passed to input() or to the FileInput constructor, the file is moved

   to a backup file and standard output is directed to the input file.

   This makes it possible to write a filter that rewrites its input file

   in place.  If the keyword argument backup=".<some extension>" is also

   given, it specifies the extension for the backup file, and the backup

   file remains around; by default, the extension is ".bak" and it is

   deleted when the output file is closed. In-place filtering is

   disabled when standard input is read. XXX The current implementation

does not work for MS-DOS 8+3 filesystems.

[译]这段话总的意思是说,inplace如果设为1,那么就将读到的行,输出到输入文件中。如果有backup这个参数,就会将源文件内容输入到备份文件中,输出还会输出到输入文件中。

[例]

(1A)#!/usr/bin/env python

import fileinput,sys

for line in fileinput.input("1.txt", inplace=0):

    print line,

[root@newpatch3 /home/python]#python test.py

1a

2a

3a

4a

[root@newpatch3 /home/python]#more 1.txt

1a

2a

3a

4a

(1B)   #!/usr/bin/env python

import fileinput,sys

for line in fileinput.input("1.txt",inplace=1):

print “test”,

[root@newpatch3 /home/python]#python test.py

[root@newpatch3 /home/python]#more 1.txt

test test test test

通过1A与1B可以发现,我们如果不指定backup的话,就会将输出直接写入到1.txt文件中。

(2) #!/usr/bin/env python

import fileinput,sys

for line in fileinput.input("1.txt",inplace=1,backup=".bak"):

    print "test\n",

[root@newpatch3 /home/python]#ls

1.txt      1.txt.bak     2.txt test.py

[root@newpatch3 /home/python]#more 1.txt

test

test

test

test

[root@newpatch3 /home/python]#more 1.txt.bak

1a

2a

3a

4a

   Performance: this module is unfortunately one of the slower ways of

   processing large numbers of input lines. Nevertheless, a significant

   speed-up has been obtained by using readlines(bufsize) instead of

   readline().  A new keyword argument, bufsize=N, is present on the

   input() function and the FileInput() class to override the default

buffer size.

[译]对与处理大量的输入行的处理是不理想的。然而,一个重要的加速已使用readlines(bufsize)来代替ReadLine()。一个新的关键参数,bufsize=N,是在input()函数中存在的和FileInput()类中覆盖buffer size的默认值。总的一句话,通过buffer size这个关键函数可以提高大量的输入。


如果想了解更多,请关注我们的公众号
公众号ID:opdevos
扫码关注

gongzhouhao.jpg

--结束END--

本文标题: 释译python fileinput中的

本文链接: https://lsjlt.com/news/188574.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 释译python fileinput中的
    fileinput模块提供处理一个或多个文本文件的功能, 可以通过使用for..in来循环读取一个或多个文本文件内容.例子中的文件,1.txt1a2a3a4a2.txt1b2bDESCRIPTION   Typical use is:   ...
    99+
    2023-01-31
    释译 python fileinput
  • Python中 fileinput模块的作用是什么
    本篇文章为大家展示了Python中 fileinput模块的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一 简介  fileinput 是python 提供的一个可以...
    99+
    2023-06-04
  • Python之禅(原文、中文翻译、解释)
    The Zen of Python, by Tim Peters Beautiful is better than ugly.Explicit is better than implicit.Simple is better than co...
    99+
    2023-01-31
    原文 中文翻译 Python
  • Python中的编译器与解释器的作用是什么
    本篇内容介绍了“Python中的编译器与解释器的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、数据的表示方式我们都知道,现实生...
    99+
    2023-06-02
  • Python编译器和解释器有哪些
    这篇文章主要讲解了“Python编译器和解释器有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python编译器和解释器有哪些”吧!1.BrythonBrython 是一种流行的 Pyt...
    99+
    2023-06-16
  • python中的注释
    一、单行注释     单行注释以#开头,例如:    print 6 #输出6二、多行注释     (Python的注释只有针对于单行的注释(用#),这是一种变通的方法)     多行注释用三引号'''将注释括起来,例如:''' 多行注释 ...
    99+
    2023-01-31
    注释 python
  • Python读取文件比open快十倍的库fileinput
    目录1. 从标准输入中读取2. 单独打开一个文件3. 批量打开多个文件4. 读取的同时备份文件5. 标准输出重定向替换6. 不得不介绍的方法7. 进阶一点的玩法8. 列举一些实用案例...
    99+
    2024-04-02
  • 编程中的编译和解释有什么区别
    本篇内容介绍了“编程中的编译和解释有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、编译是将源程序翻译成可执行的目标代码;解...
    99+
    2023-06-20
  • python中对%、~含义的解释
    目录%有哪几种含义?~含义是什么?按位取反运算符%有哪几种含义? 查找手册 翻看《The Python Libary Reference》python库指南中附录index部分(P1...
    99+
    2024-04-02
  • python中savgol_filter的详细解释
    目录 savgol_filter简介savgol_filter原理参数window_length对平滑的效果参数polyorder的平滑效果 savgol_filter简介 Savitzk...
    99+
    2023-10-06
    python 人工智能 开发语言
  • python的解释
    这篇文章给大家分享的是有关python的解释的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么严...
    99+
    2023-06-14
  • python中如何注释
    注释是向 python 代码添加说明文本,不会被执行,但有助于理解代码。注释类型包括文档字符串、内联注释和 todo 注释。注释用途包括提高可读性、记录意图、协作和调试。最佳实践包括简洁...
    99+
    2024-05-15
    python
  • python中的三种注释方法
    目录python注释方法方式1方式2方式3python小技巧 开头注释设置路径python注释方法 方式1 单行注释:shift + #(在代码的最前面输入,非选中代码进行注释)多行...
    99+
    2024-04-02
  • 详细解释opencv python中的 cv.approxPolyDP
    在OpenCV Python中,cv.approxPolyDP是一个用于多边形逼近的函数。它使用Douglas-Peucker算法来减少多边形的点数。 该函数需要两个参数:输入多边形和一个表示逼近精度...
    99+
    2023-09-10
    opencv python 计算机视觉
  • python中去掉文件的注释
    import sysimport rePY_PATTERN = re.compile(    r"""     \s*\#(:[^\r\n])*     | \s*__(:[^\r\n]*)     | "{3}(:\\.|[^\\])*"...
    99+
    2023-01-31
    注释 文件 python
  • Python中怎么实现编译和反编译
    这篇文章将为大家详细讲解有关Python中怎么实现编译和反编译,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、用Pyinstaller打包python代码1. 安装Pyinstaller安...
    99+
    2023-06-16
  • Python中的单行、多行、中文注释
    一、python单行注释符号(#) python中单行注释采用 #开头 示例:#this is a comment 二、批量、多行注释符号 多行注释是用三引号”’ ”’包含的,例如: 三、python中文注释方法 今天写脚本...
    99+
    2023-01-31
    注释 中文 Python
  • 详解Java的编译执行与解释执行
    目录一、前言二、理解Java的几个编译器三、Java采用的是解释和编译混合的模式JIT将字节码转换成最终的机器码四、编译与解释比较单独使用解释器的缺点单独使用JIT编译器的缺点一、前...
    99+
    2024-04-02
  • informix的esql编译参数避免//注释引起的SQL中断问题
    在EXEC SQL中,如果SQL语句出现了“//”符号,那么会导致后面一直到“;”结尾的SQL语句都被忽略,而不止当前行。这样往往会出乎程序员的意料。 例如以下例子程序t1.ec。 ...
    99+
    2024-04-02
  • python中有哪些注释
    这篇文章给大家分享的是有关python中有哪些注释的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的注释有:1、使用【#】表示单行注释,单行注释可以作为单独的一行放在被注释代码行之上;2、Python中...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作