包和文件操作
1.什麼是包
“”"
包含__init__.py文件的文件夾就是包
包是用來對py文件(模塊)進行分類或者封裝
“”"2.怎麼使用包中的模塊
“”"
導入方式1
import 包名.模塊名
包名.模塊名.變量
導入方式2
import 包名.模塊名 as 新模塊名
對包名.模塊名進行重命名操作
通過新名.變量 的方式去使用
導入方式3
from 包名 import 模塊名1, 模塊名2, …
模塊名.變量
導入方式4
from 包名 import 模塊名1 as 新模塊名, 模塊名2…
導入方式5
from 包名.模塊名 import 變量名1, 變量名2,…“”"
3.定製包的__init__.py文件
“”"
不管用什麼方式導入包或者包中內容的時候,系統都會先去執行__init__.py1.數據持久化
“”"
1)計算機存儲數據
程序中的數據,默認都是保存在運行內存中的,保存在運行內存中的數據在程序結束後會自動銷燬
如果將數據保存在磁盤中,除非手動刪除或者磁盤損壞,數據會一直存在
2)持久化
將程序中的數據通過文件保存在磁盤中,這個過程就是數據持久化的過程
持久化工具:普通文本文件(.txt),數據庫文件(.sqlite,.db), json文件,plist文件等
csv文件,excel文件2.文件操作
1)操作文件的基本步驟:打開文件, 讀寫文件的操作, 關閉文件
2)python實現文件操作的
1.打開 - open(file, mode=‘r’,…,encoding=None)
以指定的方式打開指定的文件並且返回(返回的是文件對象)
file - 字符串,需要打開的文件路徑
路徑:
絕對路徑 - 文件在計算機中的全路徑,r’絕對路徑’
相對路徑 - 用 . 來代替文件全路徑的部分,只寫部分路徑
. - 表示當前目錄的文件夾
… - 表示當前目錄的上層目錄的文件夾mode - 字符串,打開方式(決定打開文件後文件能支持的操作;決定讀寫數據的類型)
‘r’ - 表示只讀(默認)
‘w’ - 表示只寫,打開的時候會先清空文件
‘a’ - 表示只寫,打開的時候會保留原文件內容
‘t’ - 表示字符串類型,表示文本數據對應str類型(默認)
‘b’ - 表示二進制數據,對應bytes類型
‘rt’/‘tr’/‘r’
‘wt’/‘tw’/‘w’
‘at’/‘ta’/‘a’
‘rb’/‘br’
‘ab’/‘ba’
‘wb’/‘bw’
注意:
以讀的形式打開一個不存在的文件會報錯
以寫的形式打開一個不存在的文件會自動創建
如果是文本文件打開的時候可以是’b’也可以是’t’
如果非文本打開只能是’b’encoding - 設置文本文件的編碼方式,一般使用’utf-8’
注意:創建文件和打開文件,讀和寫對應的編碼方式要一樣
打開的時候如果帶’b’,就不能設置encoding文件對象.close()
文件關閉後不能再進行讀寫操作
讀
文件對象.read() - 從讀寫位置開始到結尾
文件對象.readline() - 從讀寫位置開始到一行結尾(只能用於以’t’打開的文本文件)
文件對象.seek(0) - 將讀寫位置移動到開頭,讀的方式打開在開頭,寫的方式打開在結尾寫
文件對象.write()1.怎麼做到數據的持久化
“”"
1)創建一個文件,用來保存需要持久化的數據
2)需要這個數據的時候,從文件中去獲取這個數據(讀)
3)當這個數據的值發生改變之後,要用新數據去更新到文件中去(寫)“”"
f = open(‘fileManager/count.txt’)
num = int(f.read())
num += 1
print(num)f = open(‘fileManager/count.txt’, ‘a’)
f.write(str(num))
f.close()練習2:添加學生
a.每運行一次程序添加一個學生,並且打印已經添加過的所有的學生
b.每運行一次程序添加一個學生,並且以列表的形式打印已經添加過的所有的學生
stu1 -> stu1 [‘stu1’]
stu2 -> stu1 stu2 [‘stu1’, ‘stu2’]
小明 -> stu1 stu2 小明 [‘stu1’, ‘stu2’, ‘小明’]
name = input(‘輸入名字:’)
f = open(‘fileManager/student.txt’)
result = f.read()print(result + name)
f = open(‘fileManager/student.txt’, ‘a’)
f.write(name + ’ ')
f.close()
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。