Python for text manipulating


 
Thread Tools Search this Thread
Top Forums Programming Python for text manipulating
# 1  
Old 02-02-2015
Python for text manipulating

Dear All,

I am trying to write a python code for reading a fixed number of lines from a big file then save those pieces into another file as columns. I think sample file is necessary for understanding:

Sample Input file:
Code:
Epi. dist.(km)=       0.8100E+02
0.7466E-07  0.4942E-07  0.7133E-07  0.6010E-07  0.1123E-06  0.4819E-07  0.9435E-07  0.6491E-07  0.6051E-07  0.5202E-07
0.1647E-06  0.5267E-07  0.5724E-07  0.1031E-06  0.1143E-06  0.4776E-07  0.3594E-06  0.4832E-07  0.7363E-07  0.1009E-06
0.6381E-07  0.6170E-07  0.6429E-07  0.9720E-07  0.4749E-07  0.6851E-07  0.1585E-06  0.8395E-07  0.4581E-07  0.7321E-07


Epi. dist.(km)=       0.8200E+02
0.2102E-06  0.9821E-07  0.6322E-07  0.1665E-06  0.5524E-06  0.6590E-07  0.1916E-06  0.1292E-06  0.1104E-06  0.8035E-06
0.6358E-06  0.4661E-07  0.9605E-07  0.1492E-06  0.1093E-06  0.1931E-05  0.7120E-07  0.9829E-07  0.1230E-05  0.4093E-06
0.1910E-06  0.2032E-06  0.9052E-07  0.5392E-07  0.5534E-06  0.9899E-07  0.1620E-06  0.1220E-06  0.1220E-06  0.3248E-06


Epi. dist.(km)=       0.8300E+02
0.5564E-07  0.8314E-07  0.8364E-07  0.3975E-07  0.4601E-07  0.4936E-07  0.5480E-07  0.1290E-06  0.4882E-07  0.4571E-07
0.1229E-06  0.2128E-06  0.8432E-07  0.9233E-07  0.4091E-07  0.5957E-07  0.7815E-07  0.6687E-07  0.5402E-07  0.6230E-07
0.6264E-07  0.1231E-06  0.6061E-07  0.4451E-07  0.7700E-07  0.3504E-07  0.1151E-06  0.1150E-06  0.5685E-07  0.5579E-07

.
.
.

So there are blocks in the file that starts with "Epi dist", I need to extract those blocks(without Epi.dist line) then save them as columns into another file. There are 20 similar blocks in the file and each block is 135 lines long(excluding Epi.dist line).


Sample output file:
Code:
0.7466E-07 0.2102E-06 0.5564E-07
0.4942E-07 0.9821E-07 0.8314E-07
0.7133E-07 0.6322E-07 0.8364E-07
0.6010E-07 0.1665E-06 0.3975E-07
0.1123E-06 0.5524E-06 0.4601E-07
0.4819E-07 0.6590E-07 0.4936E-07
0.9435E-07 0.1916E-06 0.5480E-07
0.6491E-07 0.1292E-06 0.1290E-06
0.6051E-07 0.1104E-06 0.4882E-07
0.5202E-07 0.8035E-06 0.4571E-07
0.1647E-06 0.6358E-06 0.1229E-06
0.5267E-07 0.4661E-07 0.2128E-06
0.5724E-07 0.9605E-07 0.8432E-07
0.1031E-06 0.1492E-06 0.9233E-07
0.1143E-06 0.1093E-06 0.4091E-07
0.4776E-07 0.1931E-05 0.5957E-07
0.3594E-06 0.7120E-07 0.7815E-07
0.4832E-07 0.9829E-07 0.6687E-07
0.7363E-07 0.1230E-05 0.5402E-07
0.1009E-06 0.4093E-06 0.6230E-07
0.6381E-07 0.1910E-06 0.6264E-07
0.6170E-07 0.2032E-06 0.1231E-06
0.6429E-07 0.9052E-07 0.6061E-07
0.9720E-07 0.5392E-07 0.4451E-07
0.4749E-07 0.5534E-06 0.7700E-07
0.6851E-07 0.9899E-07 0.3504E-07
0.1585E-06 0.1620E-06 0.1151E-06
0.8395E-07 0.1220E-06 0.1150E-06
0.4581E-07 0.1220E-06 0.5685E-07
0.7321E-07 0.3248E-06 0.5579E-07

I hope I did a good job explaining my problem. Could you help me out?
# 2  
Old 02-03-2015
Does it have to be python?
# 3  
Old 02-03-2015
Python solution would be preferable for me. Since I use another python script for doing other stuff with the output file, basically I want to merge two of them to make one script. I am using a dirty bash, awk solution to produce the output file at the moment.
# 4  
Old 02-10-2015
Quote:
Originally Posted by johankor
I am trying to write a python code
Could you please also show us what you've tried? It would be quicker to proceed from there..
# 5  
Old 02-14-2015
Code:
C:\Temp>
C:\Temp>type epi_dist.txt
Epi. dist.(km)=       0.8100E+02
0.7466E-07  0.4942E-07  0.7133E-07  0.6010E-07  0.1123E-06  0.4819E-07  0.9435E-07  0.6491E-07  0.6051E-07  0.5202E-07
0.1647E-06  0.5267E-07  0.5724E-07  0.1031E-06  0.1143E-06  0.4776E-07  0.3594E-06  0.4832E-07  0.7363E-07  0.1009E-06
0.6381E-07  0.6170E-07  0.6429E-07  0.9720E-07  0.4749E-07  0.6851E-07  0.1585E-06  0.8395E-07  0.4581E-07  0.7321E-07


Epi. dist.(km)=       0.8200E+02
0.2102E-06  0.9821E-07  0.6322E-07  0.1665E-06  0.5524E-06  0.6590E-07  0.1916E-06  0.1292E-06  0.1104E-06  0.8035E-06
0.6358E-06  0.4661E-07  0.9605E-07  0.1492E-06  0.1093E-06  0.1931E-05  0.7120E-07  0.9829E-07  0.1230E-05  0.4093E-06
0.1910E-06  0.2032E-06  0.9052E-07  0.5392E-07  0.5534E-06  0.9899E-07  0.1620E-06  0.1220E-06  0.1220E-06  0.3248E-06


Epi. dist.(km)=       0.8300E+02
0.5564E-07  0.8314E-07  0.8364E-07  0.3975E-07  0.4601E-07  0.4936E-07  0.5480E-07  0.1290E-06  0.4882E-07  0.4571E-07
0.1229E-06  0.2128E-06  0.8432E-07  0.9233E-07  0.4091E-07  0.5957E-07  0.7815E-07  0.6687E-07  0.5402E-07  0.6230E-07
0.6264E-07  0.1231E-06  0.6061E-07  0.4451E-07  0.7700E-07  0.3504E-07  0.1151E-06  0.1150E-06  0.5685E-07  0.5579E-07


C:\Temp>
C:\Temp>type pivot_epi_dist.py
#!python
pivot = []
index = -2
fin = open('epi_dist.txt', 'rt')
for line in fin:
    line = line.strip()
    if line == '':
        continue
    if line[0:4] == 'Epi.':
        index += 1
        iter = 0
    else:
        nums = line.split()
        for num in nums:
            if index < 0:
                pivot.append([num])
            else:
                pivot[iter].append(num)
                iter += 1
fin.close()
for row in pivot:
    print(" ".join(row), end='\n')

C:\Temp>
C:\Temp>
C:\Temp>python pivot_epi_dist.py
0.7466E-07 0.2102E-06 0.5564E-07
0.4942E-07 0.9821E-07 0.8314E-07
0.7133E-07 0.6322E-07 0.8364E-07
0.6010E-07 0.1665E-06 0.3975E-07
0.1123E-06 0.5524E-06 0.4601E-07
0.4819E-07 0.6590E-07 0.4936E-07
0.9435E-07 0.1916E-06 0.5480E-07
0.6491E-07 0.1292E-06 0.1290E-06
0.6051E-07 0.1104E-06 0.4882E-07
0.5202E-07 0.8035E-06 0.4571E-07
0.1647E-06 0.6358E-06 0.1229E-06
0.5267E-07 0.4661E-07 0.2128E-06
0.5724E-07 0.9605E-07 0.8432E-07
0.1031E-06 0.1492E-06 0.9233E-07
0.1143E-06 0.1093E-06 0.4091E-07
0.4776E-07 0.1931E-05 0.5957E-07
0.3594E-06 0.7120E-07 0.7815E-07
0.4832E-07 0.9829E-07 0.6687E-07
0.7363E-07 0.1230E-05 0.5402E-07
0.1009E-06 0.4093E-06 0.6230E-07
0.6381E-07 0.1910E-06 0.6264E-07
0.6170E-07 0.2032E-06 0.1231E-06
0.6429E-07 0.9052E-07 0.6061E-07
0.9720E-07 0.5392E-07 0.4451E-07
0.4749E-07 0.5534E-06 0.7700E-07
0.6851E-07 0.9899E-07 0.3504E-07
0.1585E-06 0.1620E-06 0.1151E-06
0.8395E-07 0.1220E-06 0.1150E-06
0.4581E-07 0.1220E-06 0.5685E-07
0.7321E-07 0.3248E-06 0.5579E-07

C:\Temp>
C:\Temp>

# 6  
Old 02-14-2015
thank you for your answer durden_tyler. However when put your code into a file and then run it I got this error message:

Code:
 ./convert.py
  File "./convert.py", line 30
    print(" ".join(row), end='\n')
                            ^
SyntaxError: invalid syntax

# 7  
Old 02-14-2015
Note that durden tyler called the script like this:
Code:
python pivot_epi_dist.py

While you call it like this:
Code:
./convert.py

That would work if the shebang were correct. You need to specify the absolute path to python, for example:
Code:
#!/usr/bin/python

if that is where python lives on your system, or
Code:
#!/usr/bin/env python

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Print a python script down a list in a text file without printing a lot combinations

In a python script I have 2 files printing side by side on the same line. I want to have 1 of the files to be already displayed at once while the other file print down the list in the file and it still will produce new lines. I want to do it like that to reduce printing a lot of lines and... (0 Replies)
Discussion started by: bigvito19
0 Replies

2. Shell Programming and Scripting

Search and Replace+append a text in python

Hello all, I have a verilog file as following (part of it): old.v: bw_r_rf16x32 AUTO_TEMPLATE ( 1957 // .rst_tri_en (mem_write_disable), 1958 .rclk (clk), 1959 .bit_wen (dva_bit_wr_en_e), 1960 .din ... (5 Replies)
Discussion started by: Zam_1234
5 Replies

3. Programming

Python Text substitute

I need to substitute only comma with dot in string like this: <strong>5,4</strong>but not sure how to do this. This does not work: text = sub('<strong>(,)</strong>', '<strong>(.)</strong>', text) (1 Reply)
Discussion started by: TiedCone
1 Replies

4. Shell Programming and Scripting

Python/GTK Text Wrap Question . . .

Greetings! After some cut-and-try, I've cobbled together the following bit of basic code:#!/usr/bin/python import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_size_request(250, 250) ... (0 Replies)
Discussion started by: LinQ
0 Replies

5. Shell Programming and Scripting

Separate Text File into Two Lists Using Python

Hello, I have a pretty simple question, but I am new to Python and am trying to write a simple program. Put simply, I want to take a text file that looks like this: 11111 22222 33333 44444 55555 66666 77777 88888 and produce two lists, one containing the contents of the left column, one the... (0 Replies)
Discussion started by: Tyler_92
0 Replies

6. Programming

Python: Check 2 text files for string and print contexts

I have 2 text files: cities.txt San Francisco Los Angeles Seattle Dallas master.txt Atlanta is chill and laid-back. I love Los Angeles. Coming to Dallas was the right choice. New York is so busy! San Francisco is fun. Moving to Boston soon! Go to Seattle in the summer. ... (0 Replies)
Discussion started by: pxalpine
0 Replies

7. Shell Programming and Scripting

Find text containing paths and replace with a string in all the python files

I have 100+ python files in a single directory. I need to replace a specific path occurrence with a variable name. Following are the find and the replace strings: Findstring--"projects\\Debugger\\debugger_dp8051_01\\debugger_dp8051_01.cywrk" Replacestring--self.projpath I tried... (5 Replies)
Discussion started by: noorsam
5 Replies

8. Shell Programming and Scripting

csh: manipulating text files - please help!

Hi All, I am trying to manipulate a text file in a csh script I am writing. I just started scripting a few months ago and have NO idea how to get this to work. My ultimate goal is to turn a text file that looks like this: 4 ep2d_diff_mddw_20_p2-MOD err 128 128 64 62 52611737 2 ... (3 Replies)
Discussion started by: Torinator
3 Replies

9. Shell Programming and Scripting

Manipulating a text file

hey guys, need ur expert help. m a core banker got stuck in someting techie and cant find a solution have manged to extract a file from oracle apps in a format that looks something like this... REC- A b c d x INV- A b... (6 Replies)
Discussion started by: komalkg
6 Replies
Login or Register to Ask a Question