2012-01-14 5 views
0

У меня есть куча файлов, как показано ниже:переименовывать строки/переименовывать файлы в питоне

_1 blank file_ 
_10 - blank file_ 
_11 - blank file_ 
_2 blank file_ 
_3 blank file_ 

Я хотел бы напечатать имя с номерами проложенными (2 символа)

у меня есть:

PATH = "/Users/seth/python/test" 
# 
# 
for (path, dirs, files) in os.walk(PATH): 

    for z in files: 

     filename = z.replace(" ","_").replace("-","").replace("__","_") 
     print filename 

Желаемая Выход:

_01_blan k_file_

_02_blank_file_

_03_blank_file_

_10_blank_file_

_11_blank_file_

+2

Можете ли вы обновить пост с желаемым выходом? – sholsapp

ответ

1

Вы можете использовать rjust для этого:

for (path, dirs, files) in os.walk(PATH): 
    for z in files: 
    filename = z.replace(" ","_").replace("-","").replace("__","_") 

    # explode and transform number 
    parts = filename.split('_', 2) 
    parts[1] = parts[1].rjust(2, '0') 

    # rejoin the transformed parts 
    print '_'.join(parts) 
+0

Я изменил: _parts [1] _ to _parts [0] _ и ​​он работал красиво. Благодарю. –

+0

@ Просто: в этом случае ваш вход не был тем, который вы описали. Вы указали, что номер будет после первого '_'. Рад помочь, тем не менее. –

Смежные вопросы