🌌 專注Golang,Python語言,云原生,人工智能領域得博主;
💜 過去經歷的意義在于引導你,而非定義你;
📢 歡迎點贊 👍 收藏 ?留言!

前言
- 檔案的讀操作
- 按行讀取檔案
- 模擬讀取打檔案
- 模擬讀取大檔案2
- 二進制方式操作檔案
- 檔案備份
- 檔案備份2
- 檔案和目錄的操作
- 批量修改檔案名
檔案的讀操作
# 1. 打開檔案
f = open('a.txt', 'r', encoding='utf-8')
# 2. 讀寫檔案 檔案物件.read(n) n 一次讀取多少位元組的內容,默認不寫,讀取全部內容
buf = f.read(3)
print(buf) # 123
print('-'*30)
buf = f.read(3) #
print(buf)
# 3. 關閉檔案
f.close()
按行讀取檔案
# 1. 打開檔案
f = open('a.txt', 'r', encoding='utf-8')
# 2. 讀寫檔案 檔案物件.read(n) n 一次讀取多少位元組的內容,默認不寫,讀取全部內容
buf = f.read(3)
print(buf) # 123
print('-'*30)
buf = f.read(3) #
print(buf)
# 3. 關閉檔案
f.close()
模擬讀取打檔案
f = open('a.txt', 'r', encoding='utf-8')
while True:
buf = f.readline()
if buf: # if len(buf) > 0 容器,可以直接作為判斷條件,容器中有內容,為True,沒有資料是False
print(buf, end='')
else:
# 檔案讀完了
break
f.close()
模擬讀取大檔案2
f = open('a.txt', 'r', encoding='utf-8')
while True:
buf = f.readline()
if buf: # if len(buf) > 0 容器,可以直接作為判斷條件,容器中有內容,為True,沒有資料是False
print(buf, end='')
else:
# 檔案讀完了
break
f.close()
二進制方式操作檔案
f = open('c.txt', 'wb')
f.write('你好'.encode()) # encode() 將str 轉換為二進制格式的字串
f.close()
f1 = open('c.txt', 'rb')
buf = f1.read()
print(buf)
print(buf.decode())
f1.close()
檔案備份
file_name = input('請輸入要備份的檔案名')
# 1. 用只讀的方式,打開檔案
f = open(file_name, 'rb')
# 2. 讀取檔案內容
buf = f.read()
# 3. 關閉檔案
f.close()
# 根據原檔案名,找到檔案后綴和檔案名
index = file_name.rfind('.')
# 后綴 file_name[index: ]
# 新檔案名
new_file_name = file_name[:index] + '[備份]' + file_name[index:]
print(new_file_name)
# 4. 只寫的方式,打開新檔案
f_w = open(new_file_name, 'wb')
# 5. 將 第 2 步讀取的內容寫入新檔案
f_w.write(buf)
# 6. 關閉新檔案
f_w.close()
檔案備份2
# 1. 用只讀的方式,打開檔案
f = open('a.txt', 'rb')
# 2. 讀取檔案內容
buf = f.read()
# 3. 關閉檔案
f.close()
# 4. 只寫的方式,打開新檔案
f_w = open('a[備份].txt', 'wb')
# 5. 將 第 2 步讀取的內容寫入新檔案
f_w.write(buf)
# 6. 關閉新檔案
f_w.close()
檔案和目錄的操作
# 對檔案和目錄的操作,需要匯入 os 模塊
import os
# 1. 檔案重命名 os.rename(原檔案路徑名, 新檔案路徑名)
# os.rename('a.txt', 'aa.txt')
# 2. 洗掉檔案 os.remove(檔案的路徑名)
# os.remove('aa.txt')
# 3. 創建目錄 os.mkdir(目錄路徑名) make directory
# os.mkdir('test')
# os.mkdir('test/aa')
# 4. 洗掉空目錄 os.rmdir(目錄名) remove directory
# os.rmdir('test/aa')
# 5. 獲取當前所在的目錄 os.getcwd() get current working directory
buf = os.getcwd()
print(buf)
# 6. 修改當前的目錄 os.chdir(目錄名) change dir
os.chdir('test')
buf = os.getcwd()
print(buf)
# 7. 獲取指定目錄中的內容, os.listdir(目錄), 默認不寫引數,是獲取當前目錄中的內容
# 回傳值是串列, 串列中的每一項是檔案名
buf = os.listdir() # test
print(buf)
批量修改檔案名
import os
def create_files():
for i in range(10):
file_name = 'test/file_' + str(i) + '.txt'
print(file_name)
f = open(file_name, 'w')
f.close()
def create_files_1():
os.chdir('test')
for i in range(10, 20):
file_name = 'file_' + str(i) + '.txt'
print(file_name)
f = open(file_name, 'w')
f.close()
os.chdir('../') # ../ 上一級目錄
def modify_filename():
os.chdir('test')
buf_list = os.listdir()
# print(buf_list)
for file in buf_list:
new_file = 'py43_' + file
os.rename(file, new_file)
os.chdir('../')
def modify_filename_1():
os.chdir('test')
buf_list = os.listdir()
# print(buf_list)
for file in buf_list:
num = len('py43_')
new_file = file[num:]
os.rename(file, new_file)
os.chdir('../')
# create_files()
# create_files_1()
# modify_filename()
modify_filename_1()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330321.html
標籤:python
上一篇:Python_5
