我在自建的部落格中新增了乙個當讀取到md檔案元資料中包含menu項時便會展示的樣式,因此對於每個集 下的檔案可以批量的新增元資料!
其中利用了tkinter
中的filedialog
來進行批量的檔案選擇,由於python中file
的'+'方式在首行新增檔案總會遇到諸如亂碼之類的問題,因此就放棄了,改為先通過'r'讀取內容然後用'w'寫入。在寫入menu的同時順道寫入了title
其實就是乙個簡單的檔案讀寫操作啦~
# -*- coding: utf-8 -*-
"""為我的部落格 .md檔案新增元資料
@author: dlnb526
"""from tkinter import *
from tkinter import filedialog
import os.path
class doc_title():
def __init__(self):
self.root = tk()
button_1 = button(self.root, text="開啟檔案", command=self.callback).pack()
mainloop()
def callback(self):
self.filenames = filedialog.askopenfilenames()
print(self.filenames)
self.co_add = input("輸入目錄節點:")
for i in self.filenames:
self.file_operate(i)
def file_operate(self,filename):
with open(filename,'r',encoding='utf-8') as f:
a = os.path.split(filename)
print("您已開啟檔案:"+a[1])
dict1 = {};
b =a[1].split('.')
print(b[0])
dict1['title']=b[0]
dict1['menu']=self.co_add
print(dict1)
file_content = f.readlines()
with open(filename,'w',encoding='utf-8') as f:
f.writelines('---\n')
for key,value in dict1.items():
f.writelines(key+': '+value+'\n')
f.writelines('---\n')
f.writelines(file_content)
d = doc_title()
如果有看到的大佬還想請教一下,python中+具體怎麼用才能在中文第一行插入東西而後面的內容不亂碼~
我原本實現思路如下
def file_operate(self,filename):
with open (filename,'r+',encoding='utf-8') as f:
a = os.path.split(filename)
print("您已開啟檔案:"+a[1])
dict1 = {};
b=a[1].split('.')
print(b[0])
dict1['title']=b[0]
dict1['menu']=self.co_add
print(dict1)
f.seek(0,0)
f.writelines('---\n')
for key,value in dict1.items():
f.writelines(key+': '+value+'\n')
f.writelines('---\n')
print(a[1]+'修改成功')
(上面只是思路)
這裡直接用了+模式,但是無論怎麼樣都會亂碼(文字內容是中文)。
Python 檔案批量重新命名
今天正好需要給團隊做乙個批量重新命名的工作,就想用python解決一下 import os path e 02組素材收集 摳圖 l os.listdir path os.chdir path 這一行重中之重,之前沒加一直報錯,後來加上這行才執行成功 forfile in l try iffile s...
Python檔案批量重新命名
把某一資料夾下的所有檔案 如 名稱統一為序號的排列,並可以更改檔案的字尾 import os def rename i 0 path r home val3 filelist os.listdir path 該資料夾下所有的檔案 包括資料夾 for files in filelist 遍歷所有檔案 ...
Python檔案批量重新命名
需求 python 檔案批量重新命名1.在當前目錄新建目錄img,裡面包含100個檔案,100個檔名各不相同 x4g5.png 2.將當前img目錄所有以.png結尾的字尾名改為.jpg.import random import string import os from os.path impor...