string split

L

Leland

Hi,

I have some formatted strings that I'd like to split and get the
meaningful data, here is the example of the string format. The big
difference of these two line are the second double quote set at the
second line
100-01001-001,"Diode,Small Signal,SOT-23",1,D46,
100-01004-001,"Diode,High Voltage General Purpose,600mA,200V,SOT-23",
3,"D24,D72,D104",

I want to split the string into the following format:
'100-01001-001', 'Diode,Small Signal,SOT-23', '1', 'D46'
'100-01004-001', 'Diode,High Voltage General Purpose,600mA,
200V,SOT-23', '3', 'D24,D72,D104'

By doing so, the list then has the meaning of part #, description,
quantity and reference. Here is the way I way to split:
str2=line1.split(',\"', 1) # Split part# and the rest
key = str2[0]
str3 = str2[1]
str4 = str3.split("\",", 1)
Value1 = str4[0]
str5 = str4[1]
str6 = str5.split(",", 1) # QTY, PARTS & BOM_NOTES
Quanty = str6[0]
str7 = str6[1] # PARTS & BOM_NOTES

It seems work this way, is there more elegant way to do this?

Thanks,
Leland
 
J

Jerry Hill

This looks like a CSV file to me. If that is the case, it is easier to use
the built-in csv module than to try to write your own parser.

It should be as easy as this:

import csv

testfile = open('testfile.csv', 'w')
testdata = """100-01001-001,"Diode,Small Signal,SOT-23",1,D46,
100-01004-001,"Diode,High Voltage General
Purpose,600mA,200V,SOT-23",3,"D24,D72,D104",
"""
testfile.write(testdata)
testfile.close()

infile = open('testfile.csv', 'r')
reader = csv.reader(infile)
for line in reader:
print line


The output of that code is:

['100-01001-001', 'Diode,Small Signal,SOT-23', '1', 'D46', '']
['100-01004-001', 'Diode,High Voltage General
Purpose,600mA,200V,SOT-23', '3', 'D24,D72,D104', '']

so line[0] is your part number, etc.
 
L

Leland

On Fri, Jan 9, 2009 at 3:39 PM, Benjamin Kaplan
This looks like a CSV file to me. If that is the case, it is easier to use
the built-in csv module than to try to write your own parser.

It should be as easy as this:

import csv

testfile = open('testfile.csv', 'w')
testdata = """100-01001-001,"Diode,Small Signal,SOT-23",1,D46,
100-01004-001,"Diode,High Voltage General
Purpose,600mA,200V,SOT-23",3,"D24,D72,D104",
"""
testfile.write(testdata)
testfile.close()

infile = open('testfile.csv', 'r')
reader = csv.reader(infile)
for line in reader:
    print line

The output of that code is:

['100-01001-001', 'Diode,Small Signal,SOT-23', '1', 'D46', '']
['100-01004-001', 'Diode,High Voltage General
Purpose,600mA,200V,SOT-23', '3', 'D24,D72,D104', '']

so line[0] is your part number, etc.

It works like a charm.

Really appreciate all the helps.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top