Python:对目录中的文件名进行排序,并在每个文件名的开头添加一个数字

2024-09-29 23:15:53 发布

您现在位置:Python中文网/ 问答频道 /正文

1-intro-to deepleanring and computer visionk.MKV
2.Kaggle Deep Learning  - YouTube.MP4
Convolutional Neural Networks - Fun and Easy Machine Learning - YouTube.MP4
Convolutional Neural Networks - The Math of Intelligence (Week 4)YouTube.MKV
Introduction to Deep Learning- What Are Convolutional Neural Networks- YouTube.MP4
Kaggle Deep Learning 3 - YouTube.MP4
Kaggle Deep Learning 4 - YouTube.MP4
Kaggle Deep Learning 5 Data Augmentation - YouTube.MP4
Kaggle Deep Learning 6 - YouTube.MP4
Kaggle Deep Learning 7.mp4
Kaggle Deep Learning 8 - YouTube.MP4

这些是需要排序的文件。包含数字的文件名(本例中为3)Kaggle Deep Learning 3-YouTube.MP4网站应更名为3 Kaggle Deep Learning-YouTube.MP4网站。不包含任何数字的文件名或开头包含数字的文件不需要重命名。你知道吗

我已经写了下面的代码,直到现在,我被卡住了

for f in os.listdir():
    filename,extension = os.path.splitext(f))

简而言之,我希望这些文件在我的目录中看起来像这样。。你知道吗

1-intro-to deepleanring and computer visionk.MKV
2 Kaggle Deep Learning  - YouTube.MP4
3 Kaggle Deep Learning  - YouTube.MP4
4 Kaggle Deep Learning  - YouTube.MP4
5 Kaggle Deep Learning  Data Augmentation - YouTube.MP4
6 Kaggle Deep Learning  - YouTube.MP4
7 Kaggle Deep Learning .mp4
8 Kaggle Deep Learning  - YouTube.MP4
Convolutional Neural Networks - Fun and Easy Machine Learning - YouTube.MP4
Convolutional Neural Networks - The Math of Intelligence (Week 4)YouTube.MKV
Introduction to Deep Learning- What Are Convolutional Neural Networks- 
YouTube.MP4

Tags: and文件toyoutube数字mp4learningdeep
2条回答

这不是一个干净的例子,但它可能会帮助你,运行这个文件夹内,你想重命名的文件。你知道吗

注意:在运行代码之前,请备份您的内容。。。你知道吗

import os

dirs = os.listdir(".")

#I am splitting every string into a chr because we dont know the location of the number
split_dir= [list(f) for f in dirs]


print "split_dir", split_dir

y = split_dir

for index, x in enumerate(split_dir):
    for char in x:
        print "char", char
        if(char.isdigit()):
            print "inside is digit"

            y[index].remove(char)
            y[index].insert(0,char)


y = [''.join(x) for x in y]
print "split_dir", y


#this section just renames the files in the current working directory
for index,file_name in enumerate(dirs):
    print("yindex", y[index])
    os.rename(file_name, y[index])

经过一番努力终于解决了这个问题,这段代码在很大程度上解决了我的问题。你知道吗

将每个字符串(文件名)拆分为一个字符是关键

import os
dirs = os.listdir(".")

for f in dirs:
filename, extension = os.path.splitext(f)

#splitting every string into a char because we don't know the location of the number
filenames = list(filename)
for char in filenames:
    if(char.isdigit()):
        #print('digit is', char)
        filenames.remove(char)
        filenames.insert(0,char)


        name = ''.join(filenames)

        new_name = '{}{}'.format(name,extension)
        #print(new_name)
        os.rename(f,new_name)

相关问题 更多 >

    热门问题