a large number of cubes are shown in this image

Python學習筆記: 批次將檔案名稱修改為自動中文姓名_提供未來示範使用

本文主要是工作上一些資料用Python程式解決後想做的分享,
但因為檔案資料等不便於網路公開,
所以就用Python先將檔案名稱修改一下,
以便於日後運用與分享。

原始資料夾檔案狀況:

以下為程式:

import glob
import os
import re
path = 'd:\\temp\\test\\'
files = glob.glob(path + '*')
print(files)

接下來是用以前分享過的中文姓名自動產生器爬蟲,自動產生中文姓名。

import requests
import pandas as pd

# 設定time為獲取中文姓名100筆的倍數。time=3,就是300筆的意思。
times = 1
cnames = []
for x in range(times):
    url = 'http://www.richyli.com/name/index.asp'
    r = requests.get(url)
    r.encoding = 'big5'
    
    # 將網頁中的資料以分行的方式存成文字檔
    result = r.text.splitlines()
    
    # 114是中文姓名開始的列,找到最後一個「、」,設定成為字串的切片位置。
    char_index = result[114].rfind("、")
    temp = result[114][:char_index]
    
    # 將temp的100筆姓名新增到cnames中
    cnames.append(temp)

# 將每100筆姓名的list加一個「、」,再組合成字串存到my_names中
my_names = "、".join(str(x) for x in cnames)
print(my_names)
# 將上面的姓名生成dataframe
df_name = pd.DataFrame(my_names.split('、'), columns=['姓名'])
print(f'中文姓名筆數:{len(df_name)}')

# 將姓名做成list
my_list = df_name.姓名.values.tolist()
print(my_list)
# 將檔名用regex分成三組,第一組為「附件X-X」,第二組為「附件X-X後面的其他檔名」,第三組為「.附檔名」
pattern = '(附件\d+-\d)(.+)(\..+)'
n = 0
for file in files:
    file_name = re.findall(pattern, file)
    #print(file_name)
    # 將檔名前面的附件X-X保留,然後加入"_",再加入中文自動的姓名,再加上附檔名
    new_file_name = file_name[0][0] + '_' + my_list[n] + file_name[0][2]
    os.rename(file, path + new_file_name)
    print(f'{file}已完成')
    n += 1

d:\temp\test\附件1-1這是示範檔案這是示範檔案.docx已完成


以下略。

最後輸出結果:

以上即完成本次目標。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *