本文实例讲述了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程序设计有所帮助。