2016-02-11 3 views
0

Я использую следующую строку, чтобы переименовать файл mp4, добавив метку времени в конец имени.Заменить пробел в имени файла дефисом

mediaName_ts = "%s_%s.mp4" %(pfile, time.strftime("%Y-%m-%d_%H:%M:%S", time.gmtime())) 

Но у меня есть проблемы с доступом в файл, когда имя файла имеет пустое пространство: name file test.mp4

Как я могу удалить пустое пространство, заменить его с дефисом и добавить метку времени к концу файла ?

Так что имя файла будет: name-file-test_2016-02-11_08:11:02.mp4

Я уже сделал отметка времени часть, но не пробельные.

ответ

5

Для замены пробелов с дефиса, использовать встроенный str.replace() метод:

string = "name file test" 
print(string) 
#name file test 
string = string.replace(" ", "-") 
#name-file-test 
0

Вы можете использовать метод str.replace() или re.sub()

небольшой пример:

mystr = "this is string example....wow!!! this is really string" 
print mystr.replace(" ", "_") 
print re.sub(" ","_", mystr) 

выход:

this_is_string_example....wow!!!_this_is_really_string 
this_is_string_example....wow!!!_this_is_really_string 
1

должно работать, он использует os.path манипулировать имя файла:

import re 
import os 
import time 

def timestamp_filename(filename): 
    name, ext = os.path.splitext(filename) 
    name = re.sub(r'[ ,]', '-', name)  # add any whitespace characters here 
    return '{}_{}{}'.format(name, time.strftime("%Y-%m-%d_%H:%M:%S", time.gmtime()), ext) 

print timestamp_filename("name file test.mp4") 

Это выведет:

name-file-test_2016-02-11_12:09:48.mp4 
Смежные вопросы