Python文件讀取常用方法


1. 關於讀取文件

f.read() 讀取文件中所有內容
f.readline() 讀取第一行的內容
f.readlines() 讀取文件里面所有內容,把每行的內容放到一個list里面

注:因為文件指針的作用,如果以上方法連用,會有讀取影響

使用方法請參見:http://www.cnblogs.com/yun1108/p/8967334.html

 

2. f.flush()   :刷新緩沖區,立即寫到磁盤上

 

3. f.seek(index) : 移動文件指針到指定的下標處,即從指定的下標處開始讀取文件,但寫入還是從最后開始寫入

 

4. with open : 用完后自動關閉文件,省去了手動添加f.close()功能  例子:修改文件

# 第一種,適合讀取小一些的文件
with open('users','a+') as fw:
    fw.seek(0) #用r+,就可省略這一步
    result = fw.read()
    new_result = result.replace('bcd','python')
    fw.seek(0)
    fw.truncate() #清空文件內容
    fw.write(new_result)
    print(new_result)

# 第二種,讀取大文件並修改
import os
with open('users') as fr,open('.users','w',encoding='utf-8') as fw: #.users是一個臨時文件
    for line in fr:#從需要修改的文件里面讀文件
        new_line=line.replace('python','修改文件')
        fw.write(new_line)
os.remove('users')  #刪除原文件
os.rename('.users','users') #將臨時文件重命名為users

 

5. 循環文件 --- 高效讀取文件

f=open('users','a+',encoding='utf-8')  # f:文件對象,或者文件句柄
#文件中內容為:
# abc,123
# qwe,456
 
# 1. 循環讀取文件中的內容並存入字典
d={}
f.seek(0)
while 1: #第一種,但要求文件里不能有空行,如有空行,則只能讀取到空行的上一行
    line=f.readline().strip()
    if line:
        # pass #什么也不做
        user,passwd=line.split(',')
        d[user]=passwd
    else:
        break
print(d)  #輸出內容:{'abc': '123', 'qwe': '456'}


# 2. 直接循環文件對象f,每次取的就是文件里的每一行
f.seek(0) # 如果open文件時是r+,可省略這步
for i in f:
    print('每次循環的是',i)
#輸出內容:
#每次循環的是 abc,123
#每次循環的是 qwe,456

l=['abc123\n','bcd123\n']
f.writelines(l)#會循環list里面的每個元素並寫進文件中,此方法用於list,如果是字符串則直接用write寫即可
#文件中的內容更新為:
# abc,123
# qwe,456
# abc123
# bcd123

 

6. encoding='utf-8' : 如果讀寫的文件中有中文,要加上

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM