Home  >  Article  >  Backend Development  >  Python advanced files and streams

Python advanced files and streams

巴扎黑
巴扎黑Original
2017-06-23 15:10:421360browse

Abstract: Python’s operations on files and streams are basically similar to other programming languages, and the statements are even more concise than other languages. In addition to these two objects, file and stream functions also target file-like objects, that is, stream functions in python that only support reading but not writing. This article introduces common file and stream operation functions and operation methods in python.

The most basic stream function in Python: open

open(name[, mode[, buffering]]): where name is the path to the file,

Commonly used file modes in Python:

  • r: read-only mode

  • w: overwrite mode

  • a: Extended mode

  • b: Binary mode (usually used with other modes)

  • +: Added mode (usually used with other modes) modes are used at the same time)

Among them, the default value of the open function mode is read-only mode. The buffering function can be True or False, indicating whether to perform memory acceleration on the file.

Python’s most basic reading and writing functions: read and write and their related contents

  • read([size]): Continue to read the file content from the current position, size The parameter is optional and specifies the number of bytes to read. The default is to read everything in the file.

  • readline([size]): Read the next line of text. size represents the number of characters read and changed. In Python, you can use readline to read the entire line of content at once, and readlines to read the entire line of content at once.

  • write(string): Write special characters to the file

Note: The wirte method will clear the original file before writing it Data for existing scripts. However, in the same script, continuous calls to write will not overwrite the content written by the previous statement, but will add new content after the previous writing position.

In Linux system, you can use "$cat Infile | py_script

Source: Baidu network disk search

"//其中somefile.txt含有文本
$ cat somefile.txt | python somescript.py

# somescript.pyimport sys
text = sys.stdin.read()
words = text.split()
wordcount = len(words)print 'Wordcount:', wordcount

Three standard forms of streams in Python: sys.stdin, sys.stdout and sys.stderr.

Read and write at specific locations: seek and tell functions:

In Python, you can get the next read character in the current file through the seek function and tell function. The location in , the sample code is as follows:

f = open(r'text\somefile.txt', 'w')
f.write('01234567890123456789')
f.seek(5)
f.write('Hello, World!')
f.close()
f = open(r'text\somefile.txt')print f.read()
结果:01234Hello, World!89>>> f = open(r'text/somefile.txt')>>> f.read(3)'012'>>> f.tell()3L

File closing and cache clearing

Regarding the close() method, when the file is used for read-only, it is recommended to call the close() method; when the file is used When writing, the close() method must be called after writing. In order to prevent the file from being closed normally due to exceptions, the close method can be called in a finally statement. In addition, it is also a good idea to place the stream operation in a with statement. Possible operations, and there is no need to consider the problem of file closing, for example:

l = ["it is a gooday!",     "Hello, world!",     "Thanks"]with open(r'text/RWLines.txt', 'w') as f:for eachStr in l:
        f.write(eachStr + "\n")"""
This is wrong because file is already closed after with clause:
f.read(2)
"""

In addition, calling the flush method will clear the cache information in the current I/O stream. For cache processing, you can refer to the following two methods. Commonly used methods:

while True:char = f.read(1)if not char: break
    process(char)
f.close()while True:
    line = f.readline()if not line: break
        process(line)
f.close()

The above is the detailed content of Python advanced files and streams. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn