我们有时候遇到文件名刚好调转,需要重新命名一下。
安装Python和使用PyChram编译器 Python的安装在这里并不想多少,目前网络上的教程都是正确的。 自从用了PyChram的编译器,世界更加美好了。编译环境可以根据每个项目不一样而不同。
下载地址:https://www.jetbrains.com/pycharm/
文件名前后互换 将学生名字放到前面而不是后面。 即:500215-John Doe改为John Doe-500215
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 import ospath='C:\\Users\\UserName\\Desktop\\intro' fileList=os.listdir(path) studentID=[] studentName=[] n=0 for i in fileList: oldname=path+os.sep+fileList[n] studentID.insert(n,fileList[n][0 :6 ]) studentName.insert(n,fileList[n][7 :len (fileList[n])-5 ]) newname=path+os.sep+studentName[n] + '-' + studentID[n] + '.xlsx' os.rename(oldname,newname) print (oldname,'======>' ,newname) n += 1
特定字符前后对换 如果我想将姓放在前面呢? 因为空格位置每个文件不一样,我们怎么做呢? 可不可以根据数据其中一个特定字符,得到这个字符位于单词的位置? 我们可以从下面例子得到一些灵感。
1 2 3 4 5 6 7 8 9 ls = ["a", "b", "c", "d", "e"] print(ls.index("c")) >>>2 ## 进阶 ls = ["apple", "banana", "coco", "delta", "echo"] print(ls[0].index("l")) >>>3
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import ospath='C:\\Users\\Xadmin\\Desktop\\intro' fileList=os.listdir(path) firstName=[] lastName=[] StudentID=[] n=0 for i in fileList: oldname=path+os.sep+fileList[n] firstName.insert(n, fileList[n][0 :fileList[n].index(" " )]) lastName.insert(n, fileList[n][fileList[n].index(" " )+1 :fileList[n].index("-" )]) StudentID.insert(n, fileList[n][fileList[n].index("-" )+1 :len (fileList[n])-5 ]) newname=path + os.sep + lastName[n]+' ' +firstName[n] + '-' + StudentID[n] + '.xlsx' os.rename(oldname,newname) print (oldname,'======>' ,newname) n += 1
使用第三方软件批量重命名 实际上,我们有Bulk Rename Utility可以直接使用,不需要特意下载Python。https://www.bulkrenameutility.co.uk/