python中檔案定位語句 Python 檔案操作

2021-10-18 14:33:54 字數 3242 閱讀 1771

檔案的作用

不僅⼈的⼤腦會遺忘事情,計算機也會如此,⽐如⼀個程式在運⾏過程中⽤了九⽜⼆⻁之⼒終於計算出了結果,試想⼀下如果不把這些資料存放起來,相⽐重啟電腦之後,「哭都沒地⽅哭了」 可⻅,在把資料儲存起來有做麼⼤的價值 。

使⽤⽂件的⽬的:就是把⼀些儲存存放起來,可以讓程式下⼀次執⾏的時候直接使⽤,⽽不必重新製作⼀份,省時省⼒ 。

檔案的開啟與關閉

1. 開啟⽂件

在python,使⽤open函式,可以開啟⼀個已經存在的⽂件,或者建立⼀個新⽂件open(⽂件名,訪問模式)

示例如下:# w 寫⼊模式 r 讀取模式

f = open('a.txt', 'w')

訪問模式 說明:

r 只⽤於讀取, 預設模式。⽂件不存在,會報錯。

w 只⽤於寫⼊。⽂件存在則先清空內容, ⽂件不存在,建立新⽂件。

a 只⽤於寫⼊。⽂件存在則追加內容, ⽂件不存在,建立新⽂件。

r+ ⽤於讀寫。⽂件不存在,會報錯。

w+ ⽤於讀寫。⽂件存在則先清空內容, ⽂件不存在,建立新⽂件。

a+ ⽤於讀寫。⽂件存在則追加內容, ⽂件不存在,建立新⽂件。

rb ⼆進製格式的唯讀操作。後續⽹絡課程中具體講解。

wb ⼆進製格式的只寫操作。後續⽹絡課程中具體講解。

ab ⼆進製格式的追加操作。後續⽹絡課程中具體講解。

2. 關閉⽂件close( )

示例如下:# 新建⼀個⽂件,⽂件名為:123.txt

f = open('123.txt', 'w')

# 關閉這個⽂件

f.close()

3.自動關閉檔案

檔案操作往往需要開啟,處理,關閉,如果忘記關閉,就會占用資源造成浪費。python為我們提供with 命令,幫助我們在處理檔案後自動進行關閉**。

with如何工作?緊跟with後面的語句被求值後,返回物件的'__enter__()'方法被呼叫,這個方法的返回值將被賦值給as後面的變數.

當with後面的**塊全部執行完之後,將被呼叫前面返回物件的__exit__()方法.

with原理示例:# -*- coding: utf-8 -*-

# 自定義 context manager

class file(object):

def __init__(self, filename, mode):

# 設定文字名與開啟方式

self.filename = filename

self.mode = mode

# 資源配置

def __enter__(self):

print("開啟文字:" + self.filename)

self.open_file = open(self.filename, self.mode)

return self.open_file

# 資源**(關閉文字)

def __exit__(self, type, value, trace):

print("關閉文字:" + self.filename)

self.open_file.close()with使用方式with open("123.txt", "w") as f:

pass # 執⾏完縮排**, 會⾃動關閉⽂件

檔案的讀寫

1. 寫資料(write)# 使⽤write()可以完成向⽂件寫⼊資料

# 開啟⽂件 w write 寫⼊ r read 讀取

f = open("123.txt", "w")

# 寫⼊資料

f.write("hello world")

# 關閉⽂件

f.close()

2. 讀資料(read)# read(n) n為讀取的字元數, 不設定則全部讀取

with open("123.txt", "r") as f:

content = f.read()

3. 讀資料(readline)readline() 每次讀取⼀⾏資料

with open("123.txt", "r") as f:

content = f.readline()

print(content, end="")

4. 讀資料(readlines)readlines() ⼀次全部讀出, 返回列表 (每⾏內容是⼀個元素)

with open("123.txt", "r") as f:

content = f.readlines()

print(content)

檔案的定位讀寫

⽂件的讀寫都會改變⽂件的定位

f.tell() 可以檢視⽂件的當前定位

f.seek(offset, whence)offset 基於whence做偏移

whence 0 移動定位到⽂件開頭 1定位不變 2移動定位到⽂件結尾

只能對⽂件開頭設定偏移(whence=1或者2時,offset只能為0)with open("123.txt", "w+") as f:

# 檢視⽂件的當前定位

# print(f.tell())

f.write("hello python")

# print(f.tell())

# 改變⽂件的定位 先移動定位到⽂件開頭,再將定位向後移動2個位元組

f.seek(2, 0)

content = f.read()

print("讀取的內容為%s" % content)

檔案的相關操作

有些時候,需要對⽂件進⾏重新命名、刪除等⼀些操作,python的os模組中有這些功能

1. ⽂件重新命名

os模組中的rename()可以完成對⽂件的重新命名操作rename(需要修改的⽂件名, 新的⽂件名)import os

os.rename("畢業論⽂.txt", "畢業論⽂-最終版.txt")

2. 刪除⽂件

os模組中的remove()可以完成對⽂件的刪除操作remove(待刪除的⽂件名)import os

os.remove("畢業論⽂.txt")

3. 建立⽂件夾import os

os.mkdir("張三")

4. 獲取當前⽬錄import os

os.getcwd()

5. 改變預設⽬錄import os

os.chdir("test") # 跳轉到當前路徑的test⼦⽬錄中

6. 獲取⽬錄列表import os

os.listdir()

7. 刪除⽂件夾import os

os.rmdir("張三")

⽬錄⾮空不能使⽤,可以使⽤遞迴的⽅式進⾏刪除

python 如何呼叫py檔案

方法1 from file in import myfunc 方法2 import file in file in.myfunc arg 函式呼叫 demo.py folder a init py file1.py現需要在demo.py中呼叫file1.py檔案,方法如下 方法1 foldera資料...

python中跨檔案引入 py檔案

在本地可以通過在pycharm裡將檔案目錄調整為sources root實現。但在伺服器裡,需要通過如下方式跨檔案呼叫.py檔案。程式結構如下 src mod1.py test1.py 若在程式test1.py中匯入模組mod1,則直接使用 import mod1 或from mod1 import...

python的 py檔案如何生成

1.用輔助軟體生成 在安裝完python3.5或者python2.7之後,還得安裝輔助工具。輔助輔助工具可以選擇vs visual studio pycharm ipython wing pyscripter spyder等。pyscripter與vs2015社群版是免費的 spyder有類似於ma...