day13 包和檔案操作

2021-10-24 20:05:31 字數 3219 閱讀 7243

包含__init__.py的檔案的資料夾就是包

包用來對py檔案(模組)進行分類或者封裝

import 包名.模組名

包名.模組名.變數

import 包名.模組名 as 模組名1

對』包名.模組名』進行重新命名,命名通過 '模組名1.變數』的方式使用變數

通過from 匯入包

from 包名 import 模組名1, 模組名2,…

使用: 模組名.變數

from 包名 import 模組名1 as 新模組名1, 模組名2 as 新模組名2,…

from 包名.模組名 import 變數1, 變數2, 變數3,…

不管用什麼樣的方式匯入包或者保重的內容的時候,系統都會先去執行__init__.py檔案

可以在__init__.py 對包中某些高頻函式或者變數簡化使用

計算機儲存資料

程式中的資料預設情況下都是儲存在執行記憶體中,儲存在執行記憶體中的資料在程式結束後會自動銷毀

儲存在磁碟中的資料除非手動刪除或者磁碟損壞,資料會一直存在

持久化將程式中的資料通過檔案儲存在磁碟中,這個過程就是資料持久化的過程

持久化工具:文字檔案(.txt)、資料庫檔案(.db, .sqlite)、json檔案、plist檔案、csv檔案、

excel等

操作檔案的基本步驟:開啟檔案(open) -> 讀寫(rw) -> 關閉檔案(close)

開啟open(file, mode=『r』,…, encoding=none) - 以指定的方式開啟指定的檔案

並返回(返回的是檔案物件)

file - 字串, 需要開啟的檔案路徑

路徑:絕對路徑 - 檔案在計算機中的全路徑,在開始位置用r』路徑』

相對路徑 - 用 . 來代替檔案全路徑的部分, 只寫部分路徑;

. - 表示當前目錄(當前**檔案所在的檔案目錄(可省略))

… - 表示當前目錄的上層目錄

… - 表示當前目錄的上層目錄的上層目錄

mode - 字串, 開啟方式(決定開啟檔案後檔案能支援的操作; 決定讀寫資料的型別)

『r』 - 表示唯讀(預設)

『w』 - 表示只寫, 開啟的時候會清空檔案, 如果檔案不存在會自動建立檔案

『a』 - 表示只寫, 開啟的時候不會清空檔案,如果檔案不存在會自動建立檔案

『t』 - 表示文字資料, 對應str型別

『b』 - 表示二進位制資料, 對應bytes型別

注意:1) 以讀的形式開啟乙個不存在的檔案會報錯;

以寫的形式開啟乙個不存在的檔案不會報錯,並且會自動建立

2) 如果是文字檔案開啟的時候可以是』b』或』t』,如果是非文字檔案只能通過』b』

encoding - 設定文字檔案的編碼方式, 一般使用』utf-8』

注意: 1) 建立檔案和開啟檔案、讀和寫對應的編碼方式要一致

2) 開啟的時候如果帶』b』, 不能設定encoding

關閉注意:檔案關閉後不能進行讀寫操作

檔案物件.close()

讀寫操作

1.讀檔案物件.read() - 從讀寫位置開始讀到檔案結尾

檔案物件.readline() - 從讀寫位置開始到讀到一行結尾(只能用於以』t』開啟的文字檔案)

2.寫檔案物件.write(資料) - 將指定資料寫入檔案中(從讀寫位置開始寫)

檔案物件.seek(0) - 將游標移動到檔案開頭(讀的方式開啟讀寫位置預設在檔案開頭,寫的方式開啟

讀寫位置預設在結尾)

1.怎麼做到資料的持久化

建立乙個檔案儲存需要持久化的資料

需要這個資料的時候從檔案中獲取資料

如果在程式中對這個資料進行了修改, 需要將最新的資料更新到檔案中

f =

open

('test.txt'

,'r'

, encoding=

'utf-8'

)num =

int(f.read())

num +=

1print

(num)

f =open

('test.txt'

,'w'

, encoding=

'utf-8'

)f.write(

str(num)

)f.close(

)

練習2:新增學生

a.每執行一次程式新增乙個學生,並且列印已經新增過的所有的學生

b.每執行一次程式新增乙個學生,並且以列表的形式列印已經新增過的所有的學生

a.stu1 -

> stu1 [

'stu1'

]stu2 -

> stu1 stu2 [

'stu1'

,'stu2'

]小明 -

> stu1 stu2 小明 [

'stu1'

,'stu2'

,'小明'

]f =

open

('test1.txt'

,'r'

, encoding=

'utf-8'

)str1 = f.read(

)str2 =

input

("請輸入新增學生姓名:"

)str1 = f' '

f =open

('test1.txt'

,'w'

, encoding=

'utf-8'

)f.write(str1)

f.close(

)

b.

str2 =

input

("student_name:"

)f =

open

('test1.txt'

,'r+'

, encoding=

'utf-8'

)result = f.read(

)all_student =

eval

(result)

print

(all_student)

f =open

('test1.txt'

,'w'

, encoding=

'utf-8'

)f.write(

str(all_student)

)f.close(

)

day13包和檔案操作

包 在python中用來專門管理py檔案的資料夾,並且在這個資料夾中有乙個特殊的檔案 init py 普通資料夾 專案中的普通資料夾主要是用管理專案需要的非 檔案 採用匯入的方式來使用包 匯入的方式有四種 1 import 包名 匯入後可通過 包名.去使用 init py中定義的所有全域性變數 2 ...

Day13 包和檔案操作

包含 init py檔案的資料夾就是包 包用來對py檔案 模組 進行分類或者封裝 import 包名.模組名 包名.模組名.變數 import 包名.模組名 as 新名 對 包名.模組名 進行重名命,命名通過 新名.變數 的方式使用變數 from 包名 import 模組名1,模組名2,模組名.變數...

day13包和檔案操作

1.什麼是包 包含 init py檔案的資料夾就是包 包 用來對模組 py檔案 進行分類或者封裝 2.怎麼使用包中的模組 import 包名.模組名 包名.模組名.變數 import 包名.模組名 as 新名 對 包名.模組名 進行重新命名,命名通過 新名.變數 的方式使用變數 from 包名 im...