上一章最后一題的答案:
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')