我正在尝试删除文件名的某些部分,以便我可以使用模式来每天提取数据。
我在这个文件夹中有以下文件(F:\Source)。
WH_BEE_FULL_20241017_170853_1.bak
WH_BEE_FULL_20241017_170853_2.bak
WH_BEE_FULL_20241017_170853_3.bak
WH_BEE_FULL_20241017_170853_4.bak
WH_BEE_FULL_20241017_170853_5.bak
WH_BEE_FULL_20241017_170853_6.bak
我需要删除文件名中的“170853”部分,这样最终结果将是:
WH_BEE_FULL_20241017_1.bak
WH_BEE_FULL_20241017_2.bak
WH_BEE_FULL_20241017_3.bak
WH_BEE_FULL_20241017_4.bak
WH_BEE_FULL_20241017_5.bak
WH_BEE_FULL_20241017_6.bak
因此,“20241017”每天都会更改,因为它是“YYYYMMDD”格式,但其他字段(如“WH”、“BEE”、“FULL”和“_1 ~ _6”)将是静态的。
重命名后,这些文件将被重新定位到(F:\Destination)文件夹。
我该如何用 Python 来做这件事?
好吧,既然您没有提供代码示例,我所能做的就是编写一个示例脚本来完成所需的操作。同时使用
os
和 shutil
模块。
import os
import shutil
source_dir = os.path.join('F:', 'Source')
destination_dir = os.path.join('F:', 'Destination')
os.makedirs(destination_dir, exist_ok=True)
for filename in os.listdir(source_dir):
if filename.endswith('.bak'):
parts = filename.split('_')
if len(parts) >= 6: # Ensure there are enough parts
new_filename = f"{parts[0]}_{parts[1]}_{parts[2]}_{parts[3]}_{parts[5]}"
old_file_path = os.path.join(source_dir, filename)
new_file_path = os.path.join(destination_dir, new_filename)
if not os.path.exists(new_file_path):
shutil.move(old_file_path, new_file_path)
您可以将该代码保存在 python 文件中,然后使用
python filename.py
运行它。