第13天 包和檔案操作

2021-10-25 01:24:34 字數 4580 閱讀 3567

「」"

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

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

「」"1)import 包名.模組名

包名.模組名.變數

2)import 包名.模組名 as 新名

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

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

模組名.變數

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

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

## from filemanager import jsonfile, bytesfile

## print(jsonfile.j_a)

## jsonfile.j_func1()

## print(bytesfile.b_a)

#### bytesfile.b_func1()

## 匯入方式5

# from filemanager.jsonfile import j_func1, j_a

# j_func1()

# print(j_a)

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

## 情況1

import filemanager

filemanager.jsonfile

filemanager.bytesfile

## 情況2

## import filemanager

# filemanager.j_func1()

# from filemanager import j_func1

# j_func1()

# 情況3

# import filemanager

# filemanager.read_file()

# from filemanager import read_file

# read_file()

from test import test1

1)計算機儲存資料

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

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

2)持久化

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

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

操作檔案的基本步驟:開啟檔案 -> 讀/寫操作 -> 關閉檔案

open(file, mode=『r』, …, encoding=none) - 以指定的方式開啟指定的檔案並且返回(返回的是檔案物件)

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

路徑:絕對路徑 - 檔案在計算機中全路徑

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

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

可以省略

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

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

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

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

『w』 - 表示只寫,開啟的時候會先清空檔案

『a』 - 表示只寫,開啟的時候會保留原檔案內容

't'  -  表示文字資料,對應str型別(預設)

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

'rt'/'tr'/'r'

'wt'/'tw'/'w'

'at'/'ta'/'a'

'rb'/'br'

'ab'/'ba'

'wb'/'bw'

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

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

2) 如果是文字檔案開啟的時候可以是'b'也可以是't';

如果是非文字檔案開啟的時候只能帶'b'

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

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

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

「」"path1 = 『/users/yuting/授課/python2004/01語言基礎/day13-包和檔案操作/files/message.txt』

path2 = r』e:\python\pycharm\01、語言基礎\day13 - 包檔案操作和異常\files\message.txt』

. - 代表資料夾 『day13-包和檔案操作』

path3 =

'./files/message.txt'

path4 =

'files/message.txt'

# .. - 代表資料夾 '01語言基礎'

path5 =

'../day13-包和檔案操作/files/message.txt'

open

(path5)

f =

open

(path3,

'rb'

)result = f.read(

)# f.write('abc') # io.unsupportedoperation: not writable

print

(type

(result)

)# 'r'/'rt' -> 'rb' ->

f =

open

(path3,

'a')

# f.read() # io.unsupportedoperation: not readable

f.write('')

f =open

(path3,

'w')

# f.read() # io.unsupportedoperation: not readable

f.write(

'')

open

('./files/test.txt'

,'r'

)# filenotfounderror

# open('./files/test.txt', 'a') # 不報錯,自動建立test.txt檔案

open

('./files/test2.txt'

,'w'

)# 不報錯,自動建立test2.txt檔案

f =

「」"1.讀

檔案物件.read() - 從讀寫位置開始讀到檔案結尾(適用於所有檔案)

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

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

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

f =

open

('files/data.txt'

)result = f.read(

)print

('第一次讀:'

, result)

f.seek(0)

result = f.read(

)print

('第二次讀:'

, result)

f.seek(0)

result = f.readline(

)print

('讀一行:'

, result)

result = f.readline(

)print

('讀第二行:'

, result)

# f = open('files/data.txt', 'a')

# f.seek(0) # 無法改變寫的位置

# f.write('start!\n')

# 將資料在到最前面

f =open

('files/data.txt'

)result = f.read(

)result =

'start!\n'

+result

f =open

('files/data.txt'

,'w'

)f.write(result)

f.close(

)

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

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

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

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...