python語言基礎 - day12~13 模組包以及檔案操作
python語言基礎 - day12~13 模組包以及檔案操作
1、模組
1)什麼是模組
python中的每一個py檔案
都是一個模組,可以在一個模組中去使用另外模組的全域性變數(變數、函式、類),但是需要提前匯入該模組
2)如何匯入模組
匯入模組的方法總結起來有以下幾種:
a.import 模組名
- 匯入模組中沒有被阻止匯入的所有的全域性變數:'模組名.'
b.import 模組名 as 別名
- 匯入模組中的所有全域性變數:'別名.'
c.from 模組名 import 變數名
- 匯入模組中的指定變數:直接使用變數
d.from 模組名 import 變數名1 as 別名1, 變數名2, 變數名3...
- 匯入模組中的指定變數:直接使用變數(變數別名)
d.from 模組名 import *
:匯入模組中所有的全域性變數
3)匯入模組的原理
不管是通過import
匯入,還是通過from-import
匯入,在匯入的時候,模組裡的程式碼都會被執行(python的import
自帶查重功能,如果模組被匯入過就不會再被重複匯入,即被匯入的模組只會執行一次)
4)阻止匯入
定義模組時,通過if __name__ = "__main__"'
這個if語句來阻止在匯入模組時不需要被執行的程式碼被執行(在這個if語句中的程式碼在匯入時不會被其他模組執行,不在if中的程式碼在匯入時會被其他模組執行)
阻止匯入原理:
每個py檔案都有一個__name__
變數來儲存當前模組的模組名,當直接執行某個模組時,這個檔案的__name__
值為自動變成"__main__"
2、包
1)什麼是包
包就是一個含有__init__.py
模組的資料夾,包是用來對py檔案進行分類或者封裝的,目的是為了方便在別的地方使用
2)怎麼樣使用包中的模組
匯入包的幾種方式:
① import 包名.模組
包名.模組名.變數
② import 包名.模組名 as 新名
對’包名.模組名’重新命名,通過’新名.變數’的方式使用變數
③ from 包名 import 模組名1, 模組名2, …
模組名.變數
④ from 包名 import 模組名1 as 新模組名1, 模組名2, …
新模組名1.變數
⑤ from 包名.模組名 import 變數名1, 變數名2, 變數名3, …
直接使用變數
3)定製包的__init__.py
檔案
__init__.py
檔案的作用,不管是以哪種方式匯入包,都會先執行這個檔案中的程式碼。不可以通過包直接匯入其他檔案的變數,但是可以通過包直接匯入__init__.py
檔案中的變數。
3、檔案操作
1)資料持久化
資料預設儲存在執行記憶體中,執行記憶體中資料存在的週期是從程式執行開始到程式執行結束,要想長久儲存,就需要將資料儲存到磁碟中,如果想要將資料儲存到磁碟中,就需要先將資料儲存到一個檔案中,然後將該檔案儲存到磁碟中。
2)檔案操作
一個完整的檔案操作包括:開啟 -> 讀/寫 -> 關閉
3)python實現檔案操作
① 開啟檔案
使用open函式 - open(path, mode, ..., encoding=None)
path - 檔案路徑(絕對路徑、相對路徑)
絕對路徑 - 檔案在計算機中的全路徑
相對路徑 - 用.
來替代路徑中的部分,只寫部分
.
- 表示當前目標(當前正在寫程式碼的檔案所在的目錄),一個點可以省略
..
- 表示當前目標的上層目錄
...
- 表示當前目標的上層目錄的上層目錄
# 絕對路徑
path0 = r"E:\python\PyCharm\01、語言基礎\day13 - 包檔案操作和異常\04 檔案操作.py" # 當前檔案
path1 = r"E:\python\PyCharm\01、語言基礎\day13 - 包和檔案操作\files\message.txt"
pathx = r"E:\python\PyCharm\01、語言基礎\day13 - 包檔案操作和異常\test3\game.py"
# 相對路徑
# . - 代表資料夾'day13 - 包和檔案操作'
path2 = r'.\files\message.txt'
path3 = r'files\message.txt'
# .. - 代表資料夾'01、語言基礎'
path4 = r'..\day13 - 包檔案操作和異常\files\message.txt'
path5 = r'..\day13 - 包檔案操作和異常\test3\game.py'
mode - 字串,開啟方式(決定開啟檔案後能執行哪種操作,決定讀寫資料的型別)
'r'
- 只讀操作,讀取位置在檔案的開頭(開啟一次檔案,第一次讀取讀取位置在檔案開頭,從第二次讀取開始,讀取位置都做檔案末尾)(預設)
'w'
- 只寫操作(使用’w’開啟檔案會清空檔案)
'a'
- 只寫操作 (使用’a’開啟檔案不會清空檔案,讀取位置在檔案結尾)
't'
- 表示文字資料,對應 str 型別(預設)
'b'
- 表示二進位制數字,對應bytes型別
'rt'/'tr'/'t'
- 都表示讀取文字資料
'wt'/'tw'/'w'
- 都表示寫入文字資料
'at'/'ta'/'t'
- 都表示寫入文字資料
'rb'/'br'/'b'
- 都表示讀取二進位制資料
'wb'/'bw'
- 都表示寫入二進位制資料
'ab'/'ba'/
- 都表示寫入二進位制資料
注意:
1、如果一個檔案不存在,以只讀方式開啟會報錯(FileNotFoundError),以只寫方式開啟不會報錯,並且會自動建立該檔案2、如果是文字檔案,開啟的時候可以帶’t’,也可以帶’b’,如果是非文字檔案,開啟的時候只能帶’b’
encoding - 設定文字檔案的編碼格式,一般使用’utf-8’
**注意:**1)開啟同一個檔案,讀和寫的方式要一致;
2)開啟的時候如果帶’b’,不能設定encoding
② 檔案的讀/寫操作
# text.txt/test.txt不存在
# f = open('./files/text.txt', 'r') # 報錯 FileNotFoundError
f = open('./files/text.txt', 'wt') # 不會報錯,並且會建立text.txt檔案
f = open('./files/test.txt', 'at') # 不會報錯,並且會建立test.txt檔案
f = open(path1, 'ra')
re1 = f.read()
f.close()
f = open(path1, 'wb')
f.write('這是在寫入')
f.close()
# 寫入二進位制資料
f = open(path1, 'ab')
③關閉 - 檔案物件.close()
**注意:**檔案關閉後不能再進行讀寫操作
f = open(path1)
f.read()
f.close()
# f.read() # ValueError: I/O operation on closed file.
4、資料的持久化
怎麼樣做到資料持久化
1)建立一個檔案來儲存需要持久化的資料
2)需要這個資料的時候從檔案中獲取這個資料
3)如果在程式中對資料進行了修改,需要將最新的資料更新到檔案中
# 練習2:新增學生
# a.每執行一次程式新增一個學生,並且列印已經新增過的所有的學生
# b.每執行一次程式新增一個學生,並且以列表的形式列印已經新增過的所有的學生
# stu1 -> stu1 ['stu1']
# stu2 -> stu1 stu2 ['stu1', 'stu2']
# 小明 -> stu1 stu2 小明 ['stu1', 'stu2', '小明']
# 直接列印已經新增過的所有的學生
name = input('請輸入學生姓名:')
f = open('students1.txt')
re1 = f.read()
print(re1+name)
f = open('students1.txt', 'a')
f.write(name+' ')
f.close
# 列表形式列印(先在students2表裡面給一個初始值'[]')
name = input('請輸入學生姓名:')
f = open('students2.txt')
re1 = eval(f.read())
re1.append(name)
print(re1)
f = open('students2.txt', 'w')
f.write(str(re1))
f.close
相關文章
- python–模組之os操作檔案模組Python
- Python OS模組操作檔案Python
- Python基礎——檔案操作Python
- python 基礎之模組與包Python
- Day12 檔案操作(1)
- Python基礎入門(8)- Python模組和包Python
- 組合語言實驗1—Debug基礎操作組合語言
- SQLAlchemy - 模組檔案以及增刪改查(CURD操作)SQL
- Python基礎總結之第九天開始【python之OS模組對目錄的操作、以及操作檔案】(新手可相互督促)Python
- Python基礎入門(9)- Python檔案操作Python
- python 檔案操作的基礎總結Python
- Python基礎——模組Python
- [06 Go語言基礎-包]Go
- python常用標準庫(os系統模組、shutil檔案操作模組)Python
- Python基礎之模組Python
- 組合語言-基礎功能組合語言
- python程式語言基礎Python
- Python基礎12(模組與datetime模組)Python
- Python使用os模組、Try語句、pathlib模組判斷檔案是否存在Python
- 組合語言-基礎知識組合語言
- Python案例學習——模組和包、爬蟲的基礎概念Python爬蟲
- 檔案IO中基礎操作
- Python基礎知識之檔案的讀取操作Python
- python菜鳥教程學習13:檔案操作Python
- Python - 模組包Python
- WebAssembly 基礎以及結合其他程式語言Web
- 基礎補充:使用xlrd模組讀取excel檔案Excel
- lec 02 arm組合語言基礎組合語言
- python基礎學習16—-模組Python
- python 基礎筆記——常用模組Python筆記
- Python基礎:常用系統模組Python
- 【python基礎】os模組的使用Python
- python 基礎之檔案Python
- python----之_init_檔案以及導包Python
- 29-檔案物件基礎操作物件
- Python語言模組分為哪幾類?有哪些主要模組?Python
- C語言讀取寫入CSV檔案 [一]基礎篇C語言
- Dart 語言標準流與檔案操作Dart