Reputation: 611
Write a program that asks the user for a file containing a program and a name for an output file. Your program should then write the program, with line numbers to the output file. For example, if the input file is:
def main():
for i in range(10):
print("I love python")
print("Good bye!")
Then the output file would be:
1 def main():
2 for i in range(10):
3 print("I love python")
4 print("Good bye!")
I know how to create a new output file but I have difficulty in adding line numbers to each line. please help! My program is:
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)
Upvotes: 0
Views: 3734
Reputation: 4784
Check out this question, it describes exactly what you're looking for. Let me know if you need more details.
Upvotes: 0
Reputation: 15433
First, it is best to use the with ...
syntax when using files (https://docs.python.org/2/tutorial/inputoutput.html).
Then, all you have to do is use enumerate
(https://docs.python.org/2/library/functions.html#enumerate). enumerate
is a built-in function that takes a sequence (string, list, dict, set, ...) as input and generates tuples with a counter and the corresponding value of the sequence.
with open(filename, "r") as openfile:
with open(filename2, "w") as out_file:
for j, line in enumerate(openfile):
out_file.write('{0:<5}{1}'.format(j+1, line))
Upvotes: 2