Jul-30-2019, 03:01 AM
Hello I am new to python and am attempting to read a text file.
The file is of the below format. Note the \r represents carriage return. \n represents a new line.
These aren't actually present in the file unless I turn on "view line endings" on on my text editor
Would someone tell me what is the best approach to get this file read? I am attempting to read the file and do some other manipulation to each line of data that was read in then write to a new file. I seem to be making a mistake on the line with 5 fields.
I can read the first 2 rows easily, but the program stops when it gets to the third line.
MY DESIRED OUTPUT that should be written to a new file
Here is the actual code
The file is of the below format. Note the \r represents carriage return. \n represents a new line.
These aren't actually present in the file unless I turn on "view line endings" on on my text editor
Would someone tell me what is the best approach to get this file read? I am attempting to read the file and do some other manipulation to each line of data that was read in then write to a new file. I seem to be making a mistake on the line with 5 fields.
I can read the first 2 rows easily, but the program stops when it gets to the third line.
Quote:field1|field2|field3\r\n
field1|field2|field3\r\n
field1|field2|field3|field4|field5\r\n
\r\n
\r
string 1\r
\r\n
\r
string 2\r
\r\n
\r
string 3\r
field1|field2|field3|field4|field5\r\n
\r\n
\r
string 1\r
\r\n
\r
string 2\r
\r\n
\r
string 3\r
MY DESIRED OUTPUT that should be written to a new file
Quote:field1|field2|field3|||^
field1|field2|field3|||^
field1|field2|field3|field4|field5|
string 1
string 2
string 3^
field1|field2|field3|field4|field5|
string 1
string 2
string 3^
Here is the actual code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
with open ( 'myFile.txt' , 'r' ) as f: line = f.readlines( 1 ); while line: line = f.readlines( 1 ) if not line: print ( 'List is empty' ) continue else : numofPipes = line[ 0 ].count( '|' ) if numofPipes = = 95 : newOutput = line[ 0 ].rstrip( '\r' ).rstrip( '\n' ) + '|||||||||^' print (newOutput) elif numofPipes = = 103 : newOutput = line[ 0 ].rstrip( '\r' ).rstrip( '\n' ) + '|' # finish inserting code to continue to read lines until condition met reportText = f.realines( 1 ) print (newOutput) |