reading text file and writing to an output file precedded by line numbers - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: reading text file and writing to an output file precedded by line numbers (/thread-14658.html) |
reading text file and writing to an output file precedded by line numbers - kannan - Dec-11-2018 In Python, Write a program that reads a file containing a text (input.txt). Read each line and send it to the output file (output.txt), preceded by line numbers. If the input file is:5 pts Mary had a little lamb Whose fleece was white as snow. And everywhere that Mary went, The lamb was sure to go! Then the program produces the output file /* 1 */ Mary had a little lamb /* 2 */ Whose fleece was white as snow. /* 3 */ And everywhere that Mary went, /* 4 */ The lamb was sure to go! prompt the user for the input and output file names. So this is what ive written so far but it has a file not found error no matter wether I put the full location or file name, any ideas would help and double check to make sure I got the rest proper please and thank you! #prompts user for input/output file name inputFileName = input('Input file name') outputFileName = input('Output file name') #opens the input out files inputFile = open(inputFileName, "r") outputFile = open(outputFileName, "w") total = 0 #to copy and add line numbers and close the files for line in inputFile: string = inputFile.readlines() total = total +1 outputFile.write("/*",total ,string, "*/") #closes the files inputFile.close() outputFile.close() RE: reading text file and writing to an output file precedded by line numbers - ichabod801 - Dec-11-2018 I don't get a file not found error, as long as I use a file name in the same folder that I'm running it in. Your write on line 14 is incorrect. First of all, you can't use multiple arguments in write like you can in print. You need to convert everything to one string before writing. Second of all, you want to be outputting line, not string. Since you use readlines with an s to get string, it's every line in the file. The loop variable line is already the line of the file associated with total. RE: reading text file and writing to an output file precedded by line numbers - kannan - Dec-11-2018 Would you be able to give me an example of the best way to fix that line? RE: reading text file and writing to an output file precedded by line numbers - ichabod801 - Dec-11-2018 Well, this being for a class, I would use something you've learned, so it doesn't look like you got the answer off the internet. Have they taught you string concatenation? text = 'str' + 'ing' + ' con' + 'cat' + 'en' + 'a' + 'tion'I prefer the format method of strings. You can see the full format method syntax here. Edit: Note the first one will require you to convert total to a string with str(), but the second one handles that for you. RE: reading text file and writing to an output file precedded by line numbers - kannan - Dec-11-2018 the book is python for everyone 2e. it covers the string format operator ex "%10.2f" % pricebut it does not cover the .format style RE: reading text file and writing to an output file precedded by line numbers - ichabod801 - Dec-11-2018 '/* %d */ %s' % total, line
RE: reading text file and writing to an output file precedded by line numbers - kannan - Dec-11-2018 ok so I tried it to ways and both came back saying not enough arguments for format strings, 1st I tried outputFile.write('/* %d */ %s' % total, line) #and then I tried line1 = ('/* %d */ %s' % total, line) outputFile.write (line1)please tell me how im being an idiot now lol RE: reading text file and writing to an output file precedded by line numbers - ichabod801 - Dec-11-2018 Sorry, it's been a while since I used that syntax (it's a bit out dated). It should be '/* %d */ %s' % (total, line)
|