将文件名更改为文件夹名

Changing the name of the file to folder name

我有一些文件,我想将名称更改为它们的文件夹名称。但是,问题是有时它们位于主文件夹中,有时位于子文件夹中。 例如,假设 "Es" 是主目录 那么我有三个选择:

Es--> France---_-2011 --> import.csv
Es--> Italy---_-2012 --> files --> import.csv
Es -->France---_-2012 --> files --> recent --> import.csv

我想要的输出是:第一个是法国----2011.csv,第二个是意大利----2012.csv, France---_-2012.csv第三个

我有这样的东西:

# Core settings

rootdir = 'C:\Users\es\den'
extension = ".zip"

for root, dirs, files in os.walk(rootdir):
    if not root.endswith(extension):
        new_list = []
        for file in files:
            if file.endswith(".csv"):
                os.chdir(root)
                print(root)
                add_id = root.split("---_-")[1]
                add_id = add_id.split("\")[0]
                print(add_id)

我该怎么做?

加入路径(ref

full_path = os.path.join(root, file)
# C:\Users\Es\France-----2011\import.csv

获取相对路径(ref)

rel_path = os.path.relpath(full_path, rootdir)
# France-----2011\import.csv

拆分目录(ref)

the_dir_name = rel_path.split(os.sep)[0]
# France-----2011

重命名 (ref)

new_filename = the_dir_name + ".csv"
os.rename(full_path, os.path.join(root, new_filename))
# rename C:\Users\Es\France-----2011\import.csv 
# to     C:\Users\Es\France-----2011\France-----2011.csv