初識python 文件讀取 保存


上一章最后一題的答案:
infors.sort(key=lambda x:x['age'])
print(infors)
--->[{'name': 'laowang', 'age': 23}, {'name': 'ab', 'age': 34}, {'name': 'bf', 'age': 43}]

python基礎(三):

文件打開和關閉:

打開:

可以用open函數打開一個已經存在的文件或者創建一個新的文件,

 open('文件名','訪問模式)

f = open('test.txt','w')

 

訪問模式 說明
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
w 打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。
wb 以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
ab 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w+ 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a+ 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。
wb+ 以二進制格式打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
ab+ 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。

 

關閉:

close()

    # 新建一個文件,文件名為:test.txt
    f = open('test.txt', 'w')

    # 關閉這個文件
    f.close()

 

 

文件讀寫:

讀(read):

我有一個 1.text 的文檔,文檔里面的內容是

'''Python just let be 

I fell in love with you watching Casablanca '''

接下來我要對這個文檔進行操作

使用read(num)可以從文件中讀取數據,num表示要從文件中讀取的數據的長度(單位是字節),如果沒有傳入num,那么就表示讀取文件中所有的數據

 

 
         
f = open('1.txt','r')

Text = f.read(7) #長度為7
print(Text)
f.close()
--->Python

如果使用讀了多次,那么后面讀取的數據是從上次讀完后的位置開始的f = open('1.txt','r')

 Text = f.read(7) print(Text) postion = f.tell() #tell()可以查看當前閱讀到的位置 print(postion) Text_2 = f.read(4) postion_2 = f.tell() print(Text_2) print(postion_2) f.close()

--->

  Python
  7
  just
  11

 
        

 

讀(readlines)

readlines可以按照行的方式把整個文件中的內容進行一次性讀取,並且返回的是一個列表,其中每一行的數據為一個元素

Text = f.readlines()
for i in Text:
    print(i)
f.close()
--->

Python just let be

I fell in love with you watching Casablanca

 
        

 

寫(write)

使用write()可以完成向文件寫入數據 

f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()

 

 

文件定位:

獲取當前讀寫的位置:

在讀寫文件的過程中,如果想知道當前的位置,可以使用tell()來獲取

Text = f.read(7)
print(Text)
postion = f.tell() #tell()可以查看當前閱讀到的位置
print(postion)

Text_2 = f.read(4)
postion_2 = f.tell()
print(Text_2)
print(postion_2)

f.close()

--->
  Python 
  7
  just
  11

定位到某個位置:

如果在讀寫文件的過程中,需要從另外一個位置進行操作的話,可以使用seek()

seek(offset, from)有2個參數

  • offset:偏移量
  • from:方向
    • 0:表示文件開頭
    • 1:表示當前位置
    • 2:表示文件末尾
 1 f = open('1.txt','rb')
 2 
 3 str = f.read(6)
 4 postion = f.tell()
 5 print(str)
 6 print(postion)
 7 
 8 f.seek(-10,2) #from =2
 9 str_2 = f.read()
10 print(str_2)
11 f.close()

--->

b'Python'
6
b'Casablanca'

 

文件和文件夾的相關操作:

重命名:

os模塊中的rename()可以完成對文件的重命名操作

rename(需要修改的文件名, 新的文件名)

import os
os.rename('1.txt','1_1.txt')

刪除:

import os
os.remove('1_1.txt')

 

文件夾操作:

創建文件夾:

os.mkdir('test')

獲取當前目錄:

os.getcwd()

改變默認目錄:

os.chdir('../')

獲取目錄列表:

os.listdir('../')

刪除文件夾:

os.rmdir('test')

 


免責聲明!

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



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