2015-03-25 9 views
2

Напишите программу, которая запрашивает у пользователя файл, содержащий программу, и имя для выходного файла. Затем ваша программа должна записать программу с номерами строк в выходной файл. Например, если входной файл:Напишите программу, которая запрашивает у пользователя файл, содержащий программу, и имя для выходного файла.

def main(): 
    for i in range(10): 
     print("I love python") 
    print("Good bye!") 

Затем выходной файл будет:

1 def main(): 
2  for i in range(10): 
3   print("I love python") 
4  print("Good bye!") 

Я знаю, как создать новый выходной файл, но у меня есть трудности в добавлении строк в каждой строке. пожалуйста помоги! Моя программа:

filename = input("Please enter a file name: ") 
filename2 = input("Please enter a file name to save the output: ") 

openfile = open(filename, "r") 
readfile = openfile.readlines() 


out_file = open(filename2, "w") 
save = out_file.write(FileWithLines) 

ответ

0

Вы можете использовать enumerate для перебора каждой строки в файле:

for line_number, line in enumerate(readfile): 
    new_line = ???  # make the new line by adding a line number 
    readfile[line_number] = new_line 
0

итерацию каждая строка входного файла с помощью enumerate и записи содержимого в новый файл с помощью строки верстка.

входной файл

input2.txt

def main(): 
    for i in range(10): 
     print("I love python") 
    print("Good bye!") 

код:

filename = raw_input("Please enter a file name: ") 
filename2 = raw_input("Please enter a file name to save the output: ") 

openfile = open(filename, "r") 
readfile = openfile.readlines() 


out_file = open(filename2, "w") 
for i , line in enumerate(readfile): 
    out_file.write("%d %s" %(i+1, line)) 

out_file.close() 

Выход:

[email protected]:~/Desktop/stackoverflow/anna$ python 7.py 
Please enter a file name: input2.txt 
Please enter a file name to save the output: output2.txt 

Выходной файл

output2.txt

1 def main(): 
2  for i in range(10): 
3   print("I love python") 
4  print("Good bye!") 

с заявлением.

filename = raw_input("Please enter a file name: ") 
filename2 = raw_input("Please enter a file name to save the output: ") 

with open(filename, "r") as fp: 
    with open(filename2, "w") as fp2: 
     for i , line in enumerate(fp.readlines()): 
      fp2.write("%d %s" %(i+1, line)) 

Примечание:

Использование raw_input() в Python 2.x

Использование input() в Python 3.x

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

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