我是Python編程的新手,所以這裏有一個問題。我想找到任何類型的擴展名爲「無標題」的文件,例如JPG,INDD,PSD。然後將它們重命名爲當天的日期。使用Python腳本查找和重命名文件
我曾嘗試以下:
import os
for file in os.listdir("/Users/shirin/Desktop/Artez"):
if file.endswith("untitled.*"):
print(file)
當我運行該腳本,沒有任何反應。
我是Python編程的新手,所以這裏有一個問題。我想找到任何類型的擴展名爲「無標題」的文件,例如JPG,INDD,PSD。然後將它們重命名爲當天的日期。使用Python腳本查找和重命名文件
我曾嘗試以下:
import os
for file in os.listdir("/Users/shirin/Desktop/Artez"):
if file.endswith("untitled.*"):
print(file)
當我運行該腳本,沒有任何反應。
您可能會發現glob
功能在這種情況下更加有用:因爲有可能沒有在名稱中.*
結尾的文件
import glob
for file in glob.glob("/Users/shirin/Desktop/Artez/untitled.*"):
print(file)
你的功能不顯示任何信息。 glob.glob()
函數將爲您執行文件擴展。
然後,您可以使用該做你的文件重命名如下:
import glob
import os
from datetime import datetime
current_day = datetime.now().strftime("%Y-%m-%d")
for source_name in glob.glob("/Users/shirin/Desktop/Artez/untitled.*"):
path, fullname = os.path.split(source_name)
basename, ext = os.path.splitext(fullname)
target_name = os.path.join(path, '{}{}'.format(current_day, ext))
os.rename(source_name, target_name)
Python字符串比較不支持通配符。您可以搜索「無標題」。文本中的任意位置:
import os
for file in os.listdir("/Users/shirin/Desktop/Artez"):
if "untitled." in file:
print(file)
請記住,這將包括任何具有「未命名」的文件。在文件的任何位置。
這種方法
import os
directoryPath = '/Users/shirin/Desktop/Artez'
lstDir = os.walk(directoryPath)
for root, dirs, files in lstDir:
for fichero in files:
(filename, extension) = os.path.splitext(fichero)
if filename.find('untitle') != -1: # == 0 if starting with untitle
os.system('mv '+directoryPath+filename+extension+' '+directoryPath+'$(date +"%Y_%m_%d")'+filename+extension)
import os
for file in os.listdir("/Users/shirin/Desktop/Artez"):
if(file.startswith("untitled")):
os.rename(file, datetime.date.today().strftime("%B %d, %Y") + "." + file.split(".")[-1])
儘量不要你的意思是'如果file.startswith( 「無題」)'? – zondo