python - 带有 if 语句的 Python 文件重命名器
问题描述
我有一个充满 .xlsx 文件的文件夹,这些文件被命名为特定文件格式,例如 FW2014516 MS1 T3 - GHD.xlsx,但是,有些文件具有这种格式 FW2014516 MS1 - GHD.xlsx 我希望能够遍历整个文件文件夹并将每个文件重命名为新格式,例如 FW2014516_MS1_T3_GHD,如果“T3”值存在(如果实际上可能不是 T3,则可能是 WT3)。
任何帮助表示赞赏。
这是我到目前为止所拥有的。
import os
import re
os.chdir(r"C:\folder where data is")
# print(os.getcwd())
for f in os.listdir():
file_name, file_ext = (os.path.splitext(f))
file_name = file_name.strip()
print(file_name)
# # print(file_name.split(''))
print(re.split(r'[\s|-]\s*', file_name))
f_name1, f_name2, f_fname3, f_name4, f_name5 = re.split(r'[\s|-]\s*', file_name)
#Need some type of if statement needed here?
new_name = '{}_{}_{}_{}{}'.format(f_name1, f_name2, f_name3, f_name4, file_ext)
os.rename(f, new_name)
解决方案
试试这个
import os
import re
os.chdir(r"C:\folder where data is")
# print(os.getcwd())
for f in os.listdir():
file_name, file_ext = (os.path.splitext(f))
file_name = file_name.strip()
print(file_name)
# # print(file_name.split(''))
if (' T3-' in file_name) or (' WT3-' in file_name):
new_name = re.sub('[- ]+', '_', file_name) + file_ext
os.rename(f, new_name)
print(f'Renamed {f} to {new_name}.')
推荐阅读
- c# - 如何访问 JArray 中的值?
- php - 代客 502 坏网关 nginx/1.19.1
- android - 使用 android/flutter 写入 NFC 标签
- php - 在发票或交货单上显示每个产品的条形码,woocommerce
- c++ - 不同容器上的 std::stack 实现有什么实际区别?
- python - 如何用另一个框架替换框架
- javascript - 为什么我收到内部服务器错误 500
- javascript - React Native Drawer 不会自动关闭
- search - Solr 同义词与预期不匹配
- angular - msal 角度更改范围为小写,在 1.3.4 中修复