首先第一步,打開文件,有兩個函數可供選擇:open() 和 file()
①. f = open('file.txt',‘w')
...
file.close()
②. f = file('file.json','r')
...
file.close()#記得打開文件時最后不要忘記關閉!
open() 和 file() 都是Python的內建函數,返回一個文件對象,具有相同的功能,可以任意替換。使用語法為:
f = open(fileName, access_mode='r', buffering=-1)
第1個參數是文件名, 2,3參數有默認值,參數2 決定了是以讀的方式‘r' ?還是寫的方式‘w' ?抑或別的方式打開文件。
打開的方式有:
r —— 讀 ; w —— 寫 ; a —— 追加,從EOF開始寫,即在文件末尾寫
r+ w+ a+ —— 都是以讀寫方式打開
rb —— 二進制 讀 ; wb —— 二進制 寫 ;rb+ wb+ ab+ —— 二進制讀寫
例子:
1
2
3
4
5
|
fp = open( 'C:\Users\MPC\Desktop\說明.txt' )# 默認以讀的方式打開 fp = open( 'test.txt' , 'w' )# 寫方式打開 fp = open( 'data.json' , 'a' )#追加方式打開 |
第二步,對文件進行操作
當得到文件對象這個句柄以后(如例子中的fp),就可對文件進行操作了。
文件對象的內建操作方法有:輸入,輸出,文件內移動,以及雜項操作
1. 輸入
函數: read(),readline(),readlines()
將文件中的內容讀入 到 一個字符串變量/列表 中
read() : 讀取整個文件到字符串變量中
例子:
1
2
3
|
fp = open( 'C:\Users\MPC\Desktop\說明.txt' ) all_file = fp.read() |
read()有一個可選的size參數,默認為-1,表示文件將會被讀至末尾(EOF)
readline() :讀取打開文件中的一行,然后返回整行包括行結束符到 字符串變量中
readline()也有一個可選的參數size,默認-1,表示讀至行結束符停止
readlines() : 讀取整個文件,返回一個 字符串列表 ,列表中的每個元素都是一個字符串,代表一行
例子:
1
2
3
4
5
6
7
8
9
|
fp = open( 'C:\Users\MPC\Desktop\說明.txt' ) lines = fp.readlines() for line in lines: ... fp.close() |
或者 第2 3 行 簡寫為:for line in fp.readlines():
在python2.3之后由于迭代器和文件迭代(即文件對象成為了他們自己的迭代器)的引入,
上例有一種更高效的實現方式:
1
2
3
4
5
6
7
|
fp = open( 'C:\Users\MPC\Desktop\說明.txt' ) for line in fp: ... fp.close() |
推薦使用這種方法!
2. 輸出
函數:write() , writelines()
將字符串/列表 輸出到文件中
write() : 將字符串輸出到文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
>>>f= open( 'test.txt' , 'w' ) >>>f.write( 'Helloworld!' ) >>>f.close() >>>f= open( 'test1.txt' , 'w' ) >>>f.write( 'Welcome\nto\n China!' ) >>>f.close() >>>f= open( 'test1.txt' , 'w' ) >>>f.write( 'Welcome\nto\n China!' ) >>>f.close() |
writelines(): 將字符串列表 寫入 文件,注意行結束符并不會自動被加入,如果需要,必須手動在每行的結尾加入行結束符。
什么意思呢? 看下例:
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
|
>>>s= [ '你好' , '伙計' ] >>>f= open( 'test.txt' , 'w' ) >>>f.writelines(s) >>>f.close() >>>s= [ '你好\n' , '伙計' ] >>>f= open( 'test.txt' , 'w' ) >>>f.writelines(s) >>>f.close() >>>f = open(r 'I:\python\test.txt' , 'w' ) >>>f.write( 'First line\n' ) >>>f.write( 'Second line\n' ) >>>f.write( 'Third line\n' ) >>>f.close() >>>lines = list(open(r 'I:\python\test.txt' )) >>>lines [ 'Firstline\n' , 'Second line\n' , 'Third line\n' ] >>>first,second,third = open(r 'I:\python\test.txt' ) >>>first 'Firstline\n' >>>second 'Secondline\n' >>>third 'Thirdline\n' |
3. 文件內移動
函數: seek() tell()
seek() :移動文件讀取指針到制定的位置
tell(): 返回文件讀取指針的位置
seek()的三種模式:
(1)f.seek(p,0) 移動當文件第p個字節處,絕對位置
(2)f.seek(p,1) 移動到相對于當前位置之后的p個字節
(3)f.seek(p,2) 移動到相對文章尾之后的p個字節
以上就是小編為大家帶來的python 讀寫txt文件 json文件的實現方法全部內容了,希望大家多多支持服務器之家~