English 中文(简体)
Data extraction and manipulation in jython
原标题:

For a given file

For ex : 11 ,345 , sdfsfsfs , 1232

i need to such above records from a file , read 11 to delimiter and strip the white space and store in the another file , similarly 345 to delimiter strip the while space and store in the file. This way i need to do for multiple rows.

so finally in the other file the data should look like

11,345,sdfsfsfs,1232

Please suggest me the way. Thanks for your help.

问题回答

Open the input file (1) and the output file (2) for reading and writing respectively.

file1 = open( file1 ,  r )
file2 = open( file2 ,  w )

Iterate over the input file, getting each line. Split the line on a comma. Then re-join the line using a comma, but first stripping the whitespace (using a list comprehension).

for line in file1:
   fields = line.split( , )
   line = ",".join([s.strip() for s in fields])
   file2.write(line + "
")

Finally, close the input and output files.

file1.close()
file2.close()

I m not sure of jython s capabilities when it comes to generators, so that is why I used a list comprehension. Please feel free to edit this (someone who knows jython better).

One approach you could take would be to remove all whitespace using the string.translate function.

import string

#makes a 256 character string that will be used in the translate function
trans_table = string.maketrans(  ,   )

file1 = open( file1 ,  r )
file2 = open( file2 ,  w )

for line in file1:
    file2.write(line.translate(trans_table, string.whitespace) +  
 )

    #Or the above could be written as:
#    line = line.translate(trans_table, string.whitespace)
#    file2.write(line +  
 )

file1.close()
file2.close()




相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签