Программа не работает так, как надо
Задача звучит так:
Напишите программу, в которой пользователь вводит имя
текстового файла, а программа отображает содержимое этого
файла, а также создает копию этого файла с пронумерованными
строками.
Моя программа копирует, но не нумерует, хотя на мой взгляд - должна. Помогите пожалуйста. Что не так?
import shutil
x = str(input('Введите имя файла: '))
y = open(f'D:\\Txtfiles\\{x}')
z = y.read()
print(z)
shutil.copyfile(f'D:\\Txtfiles\\{x}', f'D:\\Txtfiles\\3.txt')
v = open('3.txt', 'w+t')
n = 0
for i in v:
n += 1
v.writelines(str(n) + ')' + i)
y.close()
v.close()
Ответы (2 шт):
Та же самая реализация задачи, без лишнего кода, не нужно копировать файл чтобы потом добавить нумерацию, вывод на экран и запись в файл можно делать в одном цикле, итерируясь по строкам файла. Проблема оригинального кода была в том что цикл по v не отрабатывал. Ну и на будущее - имена переменным лучше давать осмысленные в большом коде с однобуквенными именами будет сложно работать.
file_name = str(input('Введите имя файла: '))
original_file = open(f'D:\\Txtfiles\\{file_name}')
copied_file = open('D:\\Txtfiles\\3.txt', 'w+t')
line_number = 0
for line in original_file.readlines():
line_number += 1
print(line.replace('\n', '')) # вывод без пустых строк
copied_file.write(str(line_number) + ')' + line)
copied_file.close()
original_file.close()
import shutil
def main():
file_name = input("Введите имя файла: ")
Print_Text_in_File(file_name)
Copy_File(file_name)
def Copy_File(file_name):
# Read
lines = []
num = 1
with open(str(file_name), "r") as file:
for line in file:
lines.append(f"{str(num)}) {line}")
num = num + 1
# Write
with open("1)" + str(file_name), "w+") as file:
for line in lines:
file.write(line)
def Print_Text_in_File(file_name):
with open(str(file_name)) as file:
print(file.read())
if __name__ == "__main__":
main()