通過(guò)Python實(shí)現(xiàn)批量修改文件名前后綴功能
功能實(shí)現(xiàn)
要實(shí)現(xiàn)的功能其實(shí)很簡(jiǎn)單,通過(guò)Python代碼獲取文件夾的路徑,通過(guò)循環(huán)處理該文件夾中所有文件的名稱,之后對(duì)文件名進(jìn)行更新即可,整個(gè)撰寫代碼是通過(guò)人工加上ai的方式進(jìn)行的。
添加
添加前后綴,直接對(duì)原始的字符串進(jìn)行拼接即可,中間通過(guò)分割符來(lái)分割,對(duì)于添加的字符串不論中文還是英文都需要滿足windows系統(tǒng)文件命名的規(guī)范,項(xiàng)目中通過(guò)ai實(shí)現(xiàn)了驗(yàn)證過(guò)程,但是可能還是不完善。
# 添加前綴
new_base = f"{content}{selected_separator}{base_name}"
# 添加后綴
new_base = f"{base_name}{selected_separator}{content}"重命名操作
# 執(zhí)行重命名操作
try:
os.replace(file_path, new_path) # 自動(dòng)覆蓋已存在的文件
print(f"成功重命名:{filename} -> {new_name}")
except Exception as e:
messagebox.showerror("重命名錯(cuò)誤",
f"無(wú)法重命名 {filename}:\n{str(e)}\n"
"可能原因:\n"
"1. 文件正在被其他程序使用\n"
"2. 沒(méi)有寫入權(quán)限\n"
"3. 文件名包含系統(tǒng)保留字符")
break # 遇到錯(cuò)誤中止處理刪除
刪除前后綴即對(duì)字符串進(jìn)行分割操作。
# 刪除前綴使用split(從左分割)
parts = base_name.split(f"{content}{selected_separator}", 1)
# 刪除后綴使用rsplit(從右分割)
parts = base_name.rsplit(f"{selected_separator}{content}", 1)沒(méi)想到這么快在使用過(guò)程中出現(xiàn)問(wèn)題 ,這個(gè)直接分割可能出現(xiàn)中間截取的情況,比如“專題01 物質(zhì)的組成、性質(zhì)、分類與化學(xué)用語(yǔ)(講)(原卷+解析版)”這個(gè)文件名,如果我是要?jiǎng)h除后綴“ 物質(zhì)”,這個(gè)肯定是無(wú)法找到的,但是如果是截取,他則會(huì)只保留“專題01”。
修改代碼如下:
elif selected_mode == "刪除前綴":
# 格式驗(yàn)證:必須包含分割符且分割符在content之后
if base_name.startswith(f"{content}{selected_separator}"):
# 計(jì)算前綴長(zhǎng)度時(shí)考慮中文等寬字符問(wèn)題
prefix_length = len(content) + len(selected_separator)
new_base = base_name[prefix_length:]
# 增加空文件名校驗(yàn)
if not new_base:
print(f"警告:刪除前綴后文件名為空,跳過(guò) {filename}")
continue
else:
print(f"未找到匹配前綴:{content}{selected_separator}")
continue
elif selected_mode == "刪除后綴":
# 格式驗(yàn)證:必須嚴(yán)格以【分隔符+內(nèi)容】結(jié)尾
suffix_pattern = f"{selected_separator}{content}"
if base_name.endswith(suffix_pattern):
# 計(jì)算后綴長(zhǎng)度(考慮多語(yǔ)言字符)
suffix_length = len(suffix_pattern)
new_base = base_name[:-suffix_length]
# 空文件名防御機(jī)制
if not new_base.strip(): # 處理純空白字符情況
print(f"危險(xiǎn)操作:刪除后綴后文件名為空,跳過(guò) {filename}")
continue
else:
print(f"未找到匹配后綴:{suffix_pattern}")
continue當(dāng)然在刪除前還需要對(duì)文件名進(jìn)行驗(yàn)證,看是否有符合的前后綴以及是否和其他文件名沖突。
# 前綴驗(yàn)證
if f"{content}{selected_separator}" in base_name:不論是添加還是刪除操作都需要檢測(cè)文件名是否沖突。
# 檢測(cè)文件名沖突
if os.path.exists(new_path):
# 彈出二次確認(rèn)對(duì)話框
confirm = messagebox.askyesno(
"確認(rèn)覆蓋",
f"文件 '{new_name}' 已存在!\n"
f"原文件:{filename}\n"
f"新文件:{new_name}\n\n"
"是否覆蓋已有文件?",
icon='warning'
)
if not confirm:
print(f"跳過(guò)已存在文件:{new_name}")
continue圖形界面
定義界面
對(duì)于這些框架的代碼,使用ai還是比較容易實(shí)現(xiàn),就是調(diào)試起來(lái)有點(diǎn)麻煩,不能無(wú)腦丟給ai,還需要自己進(jìn)行分析,通過(guò)電腦界面來(lái)對(duì)窗口的界面和位置進(jìn)行設(shè)置。
# 定義界面框架
class Frame:
# 創(chuàng)建窗口
window = tk.Tk()
# 在Frame類初始化前添加樣式配置代碼
style = ttk.Style()
# 設(shè)置主題為clam
style.theme_use('clam')
# 配置下拉框主體樣式
style.configure('Centered.TCombobox', justify="center", foreground="#2c3e50",
fieldbackground="white", padding=(0, 15), anchor="center", state="readonly")
# 配置下拉列表的樣式
style.configure('Centered.TCombobox.Listbox', foreground="#2c3e50",
rowheight=30, anchor="center")
# 設(shè)置標(biāo)題
window.title("文件批量重命名工具")
# 獲取屏幕大小
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
# 計(jì)算所需窗口的相對(duì)大小
relative_width = int(screen_width * 0.5)
relative_height = int(screen_height * 0.5)
# 計(jì)算窗口位于屏幕中央的坐標(biāo)
relative_x = (screen_width - relative_width) // 2
relative_y = (screen_height - relative_height) // 2
# 應(yīng)用窗口尺寸和位置(格式:寬度x高度+X坐標(biāo)+Y坐標(biāo))
window.geometry(f"{relative_width}x{relative_height}+{relative_x}+{relative_y}")
# 應(yīng)用組件
module(window)
# 運(yùn)行窗口
window.mainloop()定義組件
主要就是涉及到了文本框、按鈕和下拉框的布局,需要對(duì)文本框修改成只讀的屬性,文件夾路徑
操作模式和分割符就沒(méi)有進(jìn)行是否規(guī)范的判斷。
def module(window):
global path_entry, mode_var, separator_var # 聲明全局變量(因?yàn)楹罄m(xù)在其他函數(shù)中需要使用到這些參數(shù))
# 初始化默認(rèn)值
mode_var = tk.StringVar(value="添加前綴")
separator_var = tk.StringVar(value=" _下劃線")
#########################################################################################################
# 新增創(chuàng)建路徑選擇容器(頂部區(qū)域)
path_frame = tk.Frame(window)
path_frame.pack(side=tk.TOP, pady=20)
# 創(chuàng)建只讀文本框
path_entry = tk.Entry(path_frame, width=65, font=("仿宋", 12, "bold"), state="readonly",
readonlybackground="white")
path_entry.pack(side=tk.LEFT, padx=5, ipady=25)
# 創(chuàng)建瀏覽按鈕
browse_button = tk.Button(path_frame, text="獲取文件夾名", width=100, height=2, bg="#2196F3", fg="white",
font=("仿宋", 18, "bold"), command=lambda: browse_folder(path_entry))
browse_button.pack(side=tk.RIGHT, padx=5)
#########################################################################################################
# 增加操作模式選擇區(qū)域
mode_frame = tk.Frame(window)
mode_frame.pack(fill=tk.X, pady=20)
# 模式選擇標(biāo)簽
mode_label = tk.Label(mode_frame, text="操作模式:", font=("仿宋", 28, "bold"), width=15)
mode_label.pack(side=tk.LEFT, padx=5)
# 下拉框選項(xiàng)數(shù)據(jù)
mode_options = ["添加前綴", "添加后綴", "刪除前綴", "刪除后綴"]
# 創(chuàng)建下拉框(要用textvariable=mode_var綁定數(shù)據(jù),不然不會(huì)更新)
mode_combobox = ttk.Combobox(mode_frame, values=mode_options, width=30, style='Centered.TCombobox',
justify="center", state="readonly", font=("仿宋", 28, "bold"), textvariable=mode_var)
mode_combobox.pack(side=tk.LEFT, padx=15)
mode_combobox.current(0) # 設(shè)置默認(rèn)選中
#########################################################################################################
# 增加常見(jiàn)分割符區(qū)域
mode_frame = tk.Frame(window)
mode_frame.pack(fill=tk.X, pady=20)
# 模式選擇標(biāo)簽
mode_label = tk.Label(mode_frame, text="常見(jiàn)分割符", font=("仿宋", 28, "bold"), width=15, anchor="center")
mode_label.pack(side=tk.LEFT, padx=5)
# 下拉框選項(xiàng)數(shù)據(jù)
mode_options = ["_下劃線", "-連字符", ".點(diǎn)號(hào)", " 空格"]
# 創(chuàng)建下拉框(新增綁定textvariable=separator_var)
mode_combobox = ttk.Combobox(mode_frame, values=mode_options, width=30, style='Centered.TCombobox',
font=("仿宋", 28, "bold"), state="readonly", justify="center",
textvariable=separator_var)
mode_combobox.pack(side=tk.LEFT, padx=15)
mode_combobox.current(0) # 設(shè)置默認(rèn)選中
#########################################################################################################
# 給界面添加確認(rèn)和取消的按鈕
# 創(chuàng)建按鈕容器框架(實(shí)現(xiàn)更靈活的布局控制)
button_frame = tk.Frame(window)
# 固定在窗口底部并設(shè)置縱向間距
button_frame.pack(side=tk.BOTTOM, pady=20)
# 創(chuàng)建確認(rèn)和取消按鈕
confirm_button = tk.Button(button_frame, text="確認(rèn)", width=12, height=2, bg="#4CAF50", fg="white",
font=("仿宋", 18, "bold"), command=lambda: on_confirm()) # 綁定確認(rèn)事件處理
cancel_button = tk.Button(button_frame, text="取消", width=12, height=2, bg="#F44336", fg="white",
font=("仿宋", 18, "bold"),
command=lambda: window.destroy()) # 直接綁定關(guān)閉窗口的事件
# 確認(rèn)按鈕(添加pack布局)
confirm_button.pack(side=tk.LEFT, padx=10, ipady=5)
# 取消按鈕(添加pack布局)
cancel_button.pack(side=tk.RIGHT, padx=10, ipady=5)系統(tǒng)界面如下圖所示

完整代碼
完整的代碼如下:
import os
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
from tkinter import messagebox
from tkinter import simpledialog
# 驗(yàn)證文件名是否符合Windows規(guī)范(中文增強(qiáng)版)
# 修改現(xiàn)有is_valid_filename函數(shù)
def is_valid_filename(text: str) -> bool:
# 非法字符檢測(cè)(保持原邏輯)
illegal_chars = set('\\/:*?"<>|')
if any(char in illegal_chars for char in text):
return False
# 保留名稱檢測(cè)(保持原邏輯)
reserved_names = {
'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3',
'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9',
'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6',
'LPT7', 'LPT8', 'LPT9'
}
if text.upper() in reserved_names:
return False
# 增強(qiáng)中文處理
# 1. 檢查全角字符是否包含非法字符(中文輸入法可能輸入全角字符)
fullwidth_illegal = set('\/:*?"<>|') # 全角非法字符
if any(char in fullwidth_illegal for char in text):
return False
# 2. 增強(qiáng)長(zhǎng)度檢測(cè)(基于字符數(shù)而非字節(jié)數(shù))
# Windows允許最多255個(gè)字符(包括中文)
if len(text) > 255:
return False
# 3. 檢查首尾空格(中文文件名常見(jiàn)問(wèn)題)
if text.strip() != text:
return False
# 4. 檢查末尾點(diǎn)號(hào)(.test.txt. 這種形式)
if text.endswith('.') or text.startswith('.'):
return False
return True
# 用文本框獲取添加或者刪除的字符串
def getTextbox(parent_window=None):
# 通過(guò)全局控件獲取父窗口
global path_entry # 聲明使用全局路徑輸入框
parent_window = path_entry.winfo_toplevel() # 獲取輸入框所在的頂級(jí)窗口
# 添加循環(huán)輸入機(jī)制
while True:
content = simpledialog.askstring(
"輸入內(nèi)容",
"請(qǐng)輸入要添加的字符串(不能包含 \\/:*?\"<>| 等非法字符):", # 添加提示
parent=parent_window
)
print("輸入:", content)
# 用戶取消輸入
if content is None:
return None
# 驗(yàn)證邏輯
if not content:
messagebox.showerror("錯(cuò)誤", "輸入不能為空!")
elif not is_valid_filename(content):
messagebox.showerror("錯(cuò)誤",
f"文件名不合法!\n"
f"1. 請(qǐng)勿使用:\\ / : * ? \" < > | 及其全角形式\n"
f"2. 不要使用CON、PRN等保留名稱\n"
f"3. 長(zhǎng)度不超過(guò)255字符(當(dāng)前:{len(content)})\n"
f"4. 首尾不能有空格\n"
f"5. 不能以點(diǎn)號(hào)開頭或結(jié)尾")
else:
return content # 合法輸入退出循環(huán)
# 新增文件夾瀏覽函數(shù)
def browse_folder(entry_widget):
"""打開文件夾選擇對(duì)話框"""
folder_path = filedialog.askdirectory(title='請(qǐng)選擇要處理的文件夾')
if folder_path:
# 清空并更新文本框內(nèi)容
entry_widget.config(state='normal')
entry_widget.delete(0, tk.END)
entry_widget.insert(0, folder_path)
entry_widget.config(state='readonly')
# 可選:自動(dòng)滾動(dòng)到末尾
entry_widget.xview_moveto(1)
# 定義確認(rèn)事件處理
def on_confirm():
# print("確認(rèn)")
# 獲取所有輸入數(shù)據(jù)
folder_path = path_entry.get()
selected_mode = mode_var.get()
selected_separator = separator_var.get()[0] # 只要前一個(gè)英文字符即可
# 驗(yàn)證數(shù)據(jù)完整性
if not folder_path:
messagebox.showerror("警告", "請(qǐng)先選擇文件夾!")
# 選擇文件夾名
browse_folder(path_entry)
return
# 打印結(jié)果
print(f"文件夾路徑:{folder_path}")
print(f"操作模式:{selected_mode}")
print(f"分隔符:{selected_separator}")
# 獲取要添加或者刪除的文字,需要在循環(huán)外就確認(rèn)了,因?yàn)橹恍枰_認(rèn)一次即可
content = getTextbox()
# 輸入為None不能繼續(xù)運(yùn)行了,否則會(huì)把None當(dāng)做字符串進(jìn)行拼接
if content is None:
return
# 新增文件處理邏輯(Listdir獲取文件夾中所有文件和文件夾名稱組成的列表)
for filename in os.listdir(folder_path):
# 獲取文件路徑(join拼接路徑)
file_path = os.path.join(folder_path, filename)
if os.path.isfile(file_path):
# 打印文件路徑
# print(f"正在處理文件:{file_path}")
# 分割文件名和拓展名
base_name, ext = os.path.splitext(filename)
# 根據(jù)模式處理文件名
if selected_mode == "添加前綴":
# 直接進(jìn)行拼接操作
new_base = f"{content}{selected_separator}{base_name}"
# print(new_base)
elif selected_mode == "添加后綴":
new_base = f"{base_name}{selected_separator}{content}"
elif selected_mode == "刪除前綴":
# 格式驗(yàn)證:必須包含分割符且分割符在content之后
if base_name.startswith(f"{content}{selected_separator}"):
# 計(jì)算前綴長(zhǎng)度時(shí)考慮中文等寬字符問(wèn)題
prefix_length = len(content) + len(selected_separator)
new_base = base_name[prefix_length:]
# 增加空文件名校驗(yàn)
if not new_base:
print(f"警告:刪除前綴后文件名為空,跳過(guò) {filename}")
continue
else:
print(f"未找到匹配前綴:{content}{selected_separator}")
continue
elif selected_mode == "刪除后綴":
# 格式驗(yàn)證:必須嚴(yán)格以【分隔符+內(nèi)容】結(jié)尾
suffix_pattern = f"{selected_separator}{content}"
if base_name.endswith(suffix_pattern):
# 計(jì)算后綴長(zhǎng)度(考慮多語(yǔ)言字符)
suffix_length = len(suffix_pattern)
new_base = base_name[:-suffix_length]
# 空文件名防御機(jī)制
if not new_base.strip(): # 處理純空白字符情況
print(f"危險(xiǎn)操作:刪除后綴后文件名為空,跳過(guò) {filename}")
continue
else:
print(f"未找到匹配后綴:{suffix_pattern}")
continue
# 拼接新的文件名
new_name = f"{new_base}{ext}"
# 拼接新的文件路徑
new_path = os.path.join(folder_path, new_name)
# 檢測(cè)文件名沖突
if os.path.exists(new_path):
# 彈出二次確認(rèn)對(duì)話框
confirm = messagebox.askyesno(
"確認(rèn)覆蓋",
f"文件 '{new_name}' 已存在!\n"
f"原文件:{filename}\n"
f"新文件:{new_name}\n\n"
"是否覆蓋已有文件?",
icon='warning'
)
if not confirm:
print(f"跳過(guò)已存在文件:{new_name}")
continue
# 執(zhí)行重命名操作
try:
os.replace(file_path, new_path) # 自動(dòng)覆蓋已存在的文件
print(f"成功重命名:{filename} -> {new_name}")
except Exception as e:
messagebox.showerror("重命名錯(cuò)誤",
f"無(wú)法重命名 {filename}:\n{str(e)}\n"
"可能原因:\n"
"1. 文件正在被其他程序使用\n"
"2. 沒(méi)有寫入權(quán)限\n"
"3. 文件名包含系統(tǒng)保留字符")
break # 遇到錯(cuò)誤中止處理
# 定義界面展示的組件
def module(window):
global path_entry, mode_var, separator_var # 聲明全局變量(因?yàn)楹罄m(xù)在其他函數(shù)中需要使用到這些參數(shù))
# 初始化默認(rèn)值
mode_var = tk.StringVar(value="添加前綴")
separator_var = tk.StringVar(value=" _下劃線")
#########################################################################################################
# 新增創(chuàng)建路徑選擇容器(頂部區(qū)域)
path_frame = tk.Frame(window)
path_frame.pack(side=tk.TOP, pady=20)
# 創(chuàng)建只讀文本框
path_entry = tk.Entry(path_frame, width=65, font=("仿宋", 12, "bold"), state="readonly",
readonlybackground="white")
path_entry.pack(side=tk.LEFT, padx=5, ipady=25)
# 創(chuàng)建瀏覽按鈕
browse_button = tk.Button(path_frame, text="獲取文件夾名", width=100, height=2, bg="#2196F3", fg="white",
font=("仿宋", 18, "bold"), command=lambda: browse_folder(path_entry))
browse_button.pack(side=tk.RIGHT, padx=5)
#########################################################################################################
# 增加操作模式選擇區(qū)域
mode_frame = tk.Frame(window)
mode_frame.pack(fill=tk.X, pady=20)
# 模式選擇標(biāo)簽
mode_label = tk.Label(mode_frame, text="操作模式:", font=("仿宋", 28, "bold"), width=15)
mode_label.pack(side=tk.LEFT, padx=5)
# 下拉框選項(xiàng)數(shù)據(jù)
mode_options = ["添加前綴", "添加后綴", "刪除前綴", "刪除后綴"]
# 創(chuàng)建下拉框(要用textvariable=mode_var綁定數(shù)據(jù),不然不會(huì)更新)
mode_combobox = ttk.Combobox(mode_frame, values=mode_options, width=30, style='Centered.TCombobox',
justify="center", state="readonly", font=("仿宋", 28, "bold"), textvariable=mode_var)
mode_combobox.pack(side=tk.LEFT, padx=15)
mode_combobox.current(0) # 設(shè)置默認(rèn)選中
#########################################################################################################
# 增加常見(jiàn)分割符區(qū)域
mode_frame = tk.Frame(window)
mode_frame.pack(fill=tk.X, pady=20)
# 模式選擇標(biāo)簽
mode_label = tk.Label(mode_frame, text="常見(jiàn)分割符", font=("仿宋", 28, "bold"), width=15, anchor="center")
mode_label.pack(side=tk.LEFT, padx=5)
# 下拉框選項(xiàng)數(shù)據(jù)
mode_options = ["_下劃線", "-連字符", ".點(diǎn)號(hào)", " 空格"]
# 創(chuàng)建下拉框(新增綁定textvariable=separator_var)
mode_combobox = ttk.Combobox(mode_frame, values=mode_options, width=30, style='Centered.TCombobox',
font=("仿宋", 28, "bold"), state="readonly", justify="center",
textvariable=separator_var)
mode_combobox.pack(side=tk.LEFT, padx=15)
mode_combobox.current(0) # 設(shè)置默認(rèn)選中
#########################################################################################################
# 給界面添加確認(rèn)和取消的按鈕
# 創(chuàng)建按鈕容器框架(實(shí)現(xiàn)更靈活的布局控制)
button_frame = tk.Frame(window)
# 固定在窗口底部并設(shè)置縱向間距
button_frame.pack(side=tk.BOTTOM, pady=20)
# 創(chuàng)建確認(rèn)和取消按鈕
confirm_button = tk.Button(button_frame, text="確認(rèn)", width=12, height=2, bg="#4CAF50", fg="white",
font=("仿宋", 18, "bold"), command=lambda: on_confirm()) # 綁定確認(rèn)事件處理
cancel_button = tk.Button(button_frame, text="取消", width=12, height=2, bg="#F44336", fg="white",
font=("仿宋", 18, "bold"),
command=lambda: window.destroy()) # 直接綁定關(guān)閉窗口的事件
# 確認(rèn)按鈕(添加pack布局)
confirm_button.pack(side=tk.LEFT, padx=10, ipady=5)
# 取消按鈕(添加pack布局)
cancel_button.pack(side=tk.RIGHT, padx=10, ipady=5)
# 定義界面框架
class Frame:
# 創(chuàng)建窗口
window = tk.Tk()
# 在Frame類初始化前添加樣式配置代碼
style = ttk.Style()
# 設(shè)置主題為clam
style.theme_use('clam')
# 配置下拉框主體樣式
style.configure('Centered.TCombobox', justify="center", foreground="#2c3e50",
fieldbackground="white", padding=(0, 15), anchor="center", state="readonly")
# 配置下拉列表的樣式
style.configure('Centered.TCombobox.Listbox', foreground="#2c3e50",
rowheight=30, anchor="center")
# 設(shè)置標(biāo)題
window.title("文件批量重命名工具")
# 獲取屏幕大小
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
# 計(jì)算所需窗口的相對(duì)大小
relative_width = int(screen_width * 0.5)
relative_height = int(screen_height * 0.5)
# 計(jì)算窗口位于屏幕中央的坐標(biāo)
relative_x = (screen_width - relative_width) // 2
relative_y = (screen_height - relative_height) // 2
# 應(yīng)用窗口尺寸和位置(格式:寬度x高度+X坐標(biāo)+Y坐標(biāo))
window.geometry(f"{relative_width}x{relative_height}+{relative_x}+{relative_y}")
# 應(yīng)用組件
module(window)
# 運(yùn)行窗口
window.mainloop()
def main():
# 創(chuàng)建窗口
Frame()
if __name__ == "__main__":
main()測(cè)試
原始文件名

選擇“操作模式”以及“常見(jiàn)分割符”,后點(diǎn)擊“確認(rèn)”按鈕,在輸入框中輸入需要添加或者刪除的字符串。

pycharm中的輸出:

結(jié)果如下圖所示:

添加后綴操作:

這里之前出現(xiàn)了一個(gè)問(wèn)題,如果文本框沒(méi)有輸入的話,他會(huì)返回None,然后把None當(dāng)做字符串進(jìn)行拼接,這里需要避免這種情況。
# 輸入為None不能繼續(xù)運(yùn)行了,否則會(huì)把None當(dāng)做字符串進(jìn)行拼接
if content is None:
return對(duì)于后續(xù)還可以通過(guò)修改代碼批量修改文件的擴(kuò)展名。
以上就是通過(guò)Python實(shí)現(xiàn)批量修改文件名前后綴功能的詳細(xì)內(nèi)容,更多關(guān)于Python批量修改文件名前后綴的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Pytorch 使用 nii數(shù)據(jù)做輸入數(shù)據(jù)的操作
這篇文章主要介紹了Pytorch 使用 nii數(shù)據(jù)做輸入數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
釘釘群自定義機(jī)器人消息Python封裝的實(shí)例
今天小編就為大家分享一篇釘釘群自定義機(jī)器人消息Python封裝的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
關(guān)于python基礎(chǔ)數(shù)據(jù)類型bytes進(jìn)制轉(zhuǎn)換
Python 3.x之后,Python自帶字符默認(rèn)使用utf-8格式編碼和顯示,bytes數(shù)據(jù)類型是utf-8格式的二進(jìn)制形式的不可變序列,需要的朋友可以參考下2023-05-05
python實(shí)現(xiàn)兩張圖片拼接為一張圖片并保存
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)兩張圖片拼接為一張圖片并保存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
PyQt5主窗口動(dòng)態(tài)加載Widget實(shí)例代碼
這篇文章主要介紹了PyQt5主窗口動(dòng)態(tài)加載Widget實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
使用python進(jìn)行時(shí)間序列預(yù)測(cè)的流程
使用 Python 進(jìn)行時(shí)間序列預(yù)測(cè)是一個(gè)非常常見(jiàn)的任務(wù),可以應(yīng)用于各種領(lǐng)域,時(shí)間序列預(yù)測(cè)的方法有很多,包括統(tǒng)計(jì)方法、機(jī)器學(xué)習(xí)方法、以及深度學(xué)習(xí)方法,下面是一個(gè)簡(jiǎn)單的時(shí)間序列預(yù)測(cè)流程示例,需要的朋友可以參考下2024-09-09

