仅使用文件夹名称替换文件名的一部分

时间:2018-03-12 14:40:22

标签: python

我在C:\Users\Documents\Datas中有一些文件夹,其名称为A,B,C。

  • 内部文件夹A:RE_20.csv; RE_23.csv; RE_25.csv
  • 内部文件夹B:DF_41.csv; DF_46.csv; RE_47.csv
  • 内部文件夹C:VN_81.csv; VN_82.csv; VN_89.csv

我想将.csv个文件的一部分替换为其文件夹通讯员的名称。我想得到:

  • 内部文件夹A:A_20.csv; A_23.csv; A_25.csv
  • 内部文件夹B:B_41.csv; B_46.csv; B_47.csv
  • 内部文件夹C:C_81.csv; C_82.csv; C_89.csv

1 个答案:

答案 0 :(得分:1)

pathlib库就是为这种路径操作而诞生的。

试试这个:

from pathlib import Path
import re

paths=Path('C:\\Users\\Documents\\Datas').glob('*/*.csv')

for path in paths:
    new_path = path.parent/re.sub('.+_',path.parent.name+'_',path.name)
    print(path,'->',new_path)
    path.replace(new_path)