2016-03-02 2 views
0

Я новичок в кодировании Python, поэтому задайте вопрос. Я хочу найти файлы, которые называются «без названия» с любым расширением, например. jpg, indd, psd. Затем переименуйте их в дату текущего дня.Найти и переименовать файлы с помощью скрипта Python

Я попытался следующие:

import os 

for file in os.listdir("/Users/shirin/Desktop/Artez"): 
    if file.endswith("untitled.*"): 
     print(file) 

Когда я запускаю скрипт, ничего не происходит.

+0

Не значит 'если file.startswith ("без названия")'? – zondo

ответ

1

Вы можете найти функцию 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) 
0

Python строка компаратор не поддерживает подстановочные знаки. Вы можете искать «без названия». где бы то ни было в тексте:

import os 
    for file in os.listdir("/Users/shirin/Desktop/Artez"): 
     if "untitled." in file: 
      print(file) 

Следует иметь в виду, что это будет включать в себя любой файл с названием «без названия». в любом месте файла.

0

попробовать с этим подходом

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) 
0
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]) 
Смежные вопросы