#python
#python
Вопрос:
Как показано на распечатке, каждая строка должна состоять из имени, символы которого были перевернуты, за которым следует дата рождения, формат которой был преобразован в европейский формат.
Однако в последней строке две из этих строк выводятся рядом друг с другом без пробела. Мне было интересно, как избежать этого и напечатать оба имени / даты рождения в отдельных строках, как те, что над ними.
def mirror(text):
back = ""
for i in range(1, len(text)):
back = back text[len(text) - i]
return back
while True:
try:
file = input('Please enter the name of the file you would like to open: ')
text = open(file)
break
except:
print('Please enter a valid file.')
continue
lines = text.readlines()
for line in lines:
part = line[0:8].split('/')
dd = part[0]
mm = part[1]
yy = part[2]
text = line[8:]
name = mirror(text)
print(name " " mm '/' dd '/' yy, end = "")
Фактические результаты:
senoJ moT 02/01/00
senoJ moT 02/01/00
senoJ moT 02/01/00
senoJ moT 02/01/00
senoJ moT 02/01/00senoJ moT 02/01/00
в то время как те, которые я хотел бы:
senoJ moT 02/01/00
senoJ moT 02/01/00
senoJ moT 02/01/00
senoJ moT 02/01/00
senoJ moT 02/01/00
senoJ moT 02/01/00
Комментарии:
1. Голый текст
except
никогда не бывает очень хорошей идеей.2. Ваша новая строка находится в конце каждой строки в
lines
списке. Переворачиваниеtext
приводит к тому, что новые строки печатаются в первую очередь. Итак, пропущенная новая строка вызвана тем, что ваш файл не заканчивается символом новой строки.
Ответ №1:
По умолчанию для end
атрибута функции печати добавляется символ новой строки в конец строки. С end = ""
вы сказали, что вам ничего не нужно в конце. Удалите это, и это должно обеспечить желаемый результат.
Кроме того, если вы не используете with open as
соглашение для работы с файлами, вам придется сделать это text.close()
, когда вы закончите с этим.