任務很簡單,某個目錄下面有幾千個文件,某些文件沒有后綴名,現在的任務就是將所有的沒有后綴名的文件加上后綴名,python有現成的函數可以實現,但是在實現過程中遇到幾個問題,分享一下解決方法
下面是最終代碼 (windows下實現的)
#
-*- coding: cp936 -*-
import os
path = 'D :\\圖片\\ '
for file in os.listdir(path):
if os.path.isfile(os.path.join(path,file))==True:
if file.find( ' . ')<0:
newname=file+ ' rsfdjndk.jpg '
os.rename(os.path.join(path,file),os.path.join(path,newname))
print file, ' ok '
import os
path = 'D :\\圖片\\ '
for file in os.listdir(path):
if os.path.isfile(os.path.join(path,file))==True:
if file.find( ' . ')<0:
newname=file+ ' rsfdjndk.jpg '
os.rename(os.path.join(path,file),os.path.join(path,newname))
print file, ' ok '
# print file.split('.')[-1]
實現的方法是:首先遍歷path指定的目錄,如果是文件(不是文件夾)並且文件名中不存在 ‘.’ ,也就是沒有后綴名,就把這個文件加上后綴名,然后重命名
有些細節需要注意:
1.如果path指定的文件夾不是這個程序的所在的目錄,rename函數里面的路徑就必須是絕對路徑,否則就會報‘WindowsError: [Error 2]’錯誤
2.重命名時如果新文件名已經存在,就會報‘WindowsError: [Error 183]’ 錯誤,所以,新文件名最好加上一些隨機字符串
3.如果改文件名或者后綴名可以用split() 函數進行分割
4.find函數如果找不到指定的字符串的話就會返回 ‘-1’