Добавить номер в формате 001 к имени файла в python - PullRequest
0 голосов
/ 29 сентября 2018

Я загружаю текстовый файл в массив, а затем загружаю массив на веб-сайт, который загружает файл в определенный каталог.Имя файла содержит первые десять букв строки массива.Проблема: добавьте номер в формате 00n перед именем файла.Я попробовал несколько советов здесь, но ничего не работает, как я хотел.В текстовом файле случайные предложения типа «Собака лает»

def openFile():
with open('test0.txt','r') as f:
    content = f.read().splitlines()
    for line in content:
       line=line.strip()
       line=line.replace(' ','+')
       arr.append(line)
    return arr  

def openWeb()
 for line in arr:
    url="url"
    name = line.replace('+', '')[0:9]
    urllib.request.urlretrieve(url, "dir"+"_"+name+".mp3")

, поэтому вывод должен выглядеть как

'001_nameoffirst' 
'002_nameofsecond'

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Используя перечислить и zfill это можно сделать, также вы можете использовать аргумент start = 1 в сочетании с перечислить

l = ['nameoffirst', 'nameofsecond']
new_l = ['{}_'.format(str(idx).zfill(3))+ item for idx, item in enumerate(l, start = 1)]

Расширенный цикл:

new_l = [] 
for idx, item in enumerate(l, start = 1):
    new_l.append('{}_'.format(str(idx).zfill(3)) + item)
['001_nameoffirst', '002_nameofsecond']
0 голосов
/ 29 сентября 2018

Вы можете использовать форматирование строки и zfill для достижения эффекта 00x.Я не уверен, что ваши данные, но это иллюстрирует мою точку зрения:

names = ['nameoffirst', 'nameofsecond']
for i, name in enumerate(names):
    form = '{}_{}'.format(str(i).zfill(3), name)
    print(form)  # or do whatever you
    # need with 'form'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...