使用python中的文本输入重命名文件列表?

时间:2018-09-03 17:57:04

标签: python python-3.x function

我有一个文件夹,其中包含300多个视频文件,其名称开头为

video1.mp4,video2.mp4,video3.mp4 ...video302.mp4

我正在尝试使用一个包含302行的文本文件重命名所有这些文件,其中每一行都与上述文件名匹配。

import os 
def chngname():
    os.chdir('/root/Desktop/video')
    with open('/root/Desktop/vidlink','r') as jabber:
        content=jabber.read().splitlines()
        director=[x for x in os.listdir()[:5]]
       director.sort()
       return content,director



newname = chngname()
os.chdir('/root/Desktop/video')
os.rename(newname[0],newname[1])

在执行上述代码时,我收到了错误消息

找不到文件错误:[错误2]没有此类文件或目录

如何解决此错误? 问候

更新1: 代码已更新

1 个答案:

答案 0 :(得分:1)

import os 
def chngname():
    os.chdir('/home/alireza/Desktop/Testak')
    with open('/home/alireza/Desktop/fileNames.txt','r') as jabber:
        content=jabber.read().splitlines()
        director=[x for x in os.listdir()]
        director.sort()
        return content,director



newname = chngname()
os.chdir('/home/alireza/Desktop/Testak')
for id, file in enumerate(newname[1]):
    os.rename(file, newname[0][id])

以这种方式工作,代码遇到的问题是,您将列表作为文件传递给os.rename()函数

此代码有一些不良做法,最好使用os.path lib作为文件地址