Python3读取文件常用方法实例分析

时间:2022-09-12 12:50:56

本文实例讲述了Python3读取文件常用方法。分享给大家供大家参考。具体如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'''''
Created on Dec 17, 2012
读取文件
@author: liury_lab
'''
# 最方便的方法是一次性读取文件中的所有内容放到一个大字符串中:
all_the_text = open('d:/text.txt').read()
print(all_the_text)
all_the_data = open('d:/data.txt', 'rb').read()
print(all_the_data)
# 更规范的方法
file_object = open('d:/text.txt')
try:
  all_the_text = file_object.read()
  print(all_the_text)
finally:
  file_object.close()
# 下面的方法每行后面有‘\n' 
file_object = open('d:/text.txt')
try:
  all_the_text = file_object.readlines()
  print(all_the_text)
finally:
  file_object.close()
# 三句都可将末尾的'\n'去掉 
file_object = open('d:/text.txt')
try:
  #all_the_text = file_object.read().splitlines()
  #all_the_text = file_object.read().split('\n')
  all_the_text = [L.rstrip('\n') for L in file_object]
  print(all_the_text)
finally:
  file_object.close()
# 逐行读
file_object = open('d:/text.txt')
try:
  for line in file_object:
    print(line, end = '')
finally:
  file_object.close()
# 每次读取文件的一部分
def read_file_by_chunks(file_name, chunk_size = 100):  
  file_object = open(file_name, 'rb')
  while True:
    chunk = file_object.read(chunk_size)
    if not chunk:
      break
    yield chunk
  file_object.close()
for chunk in read_file_by_chunks('d:/data.txt', 4):
  print(chunk)

输出如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
hello python
hello world
b'ABCDEFG\r\nHELLO\r\nhello'
hello python
hello world
['hello python\n', 'hello world']
['hello python', 'hello world']
hello python
hello worldb'ABCD'
b'EFG\r'
b'\nHEL'
b'LO\r\n'
b'hell'
b'o'

希望本文所述对大家的Python程序设计有所帮助。