#your thought is right. ======================================================= def sizes2fields(sizes): d = [] begin = 0 for i in sizes: if begin: end = begin + i else: end = i d.append((begin, end)) begin += i return tuple(d)
def slicestring(s, fields): d = [] for i in fields: d.append(s[i[0]:i[1]]) return tuple(d) sizes = [16,4,8,8,8] s = '123456789012345678901234567890123456789012345678901234567890' print slicestring(s, sizes2fields(sizes)) ========================================================== prints out: ('1234567890123456', '7890', '12345678', '90123456', '78901234') hope it helps. thanks Edwin -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Eric Wertman Sent: Thursday, August 14, 2008 1:59 PM To: python-list@python.org Subject: Re: Fixed-length text file to database script I have a machine (PLC) that is dumping its test results into a fixed- length text file. While it has nothing to do with python, I found that creating a MySQL table with the proper fixed length char() fields and using 'load data infile' was the easiest way to deal with that sort of scenario. The python script is the secondary part, that handles the normalization and proper typing of the first table to the second, permanent storage area. But in this case, the more advanced bits are the database and SQL details, and python is just a very convenient way to build the SQL statements and execute them. I'm really not sure what the best way to deal with fixed length data is in python. I might define a list with the field lengths and use a string slicing to get the items.. as a first thought: myfile = '/somewhere/somefile.txt' sizes = [16,4,8,8,8] fd = open(myfile,r) for line in fd.readlines() : idx1 = 0 for l in sizes : -- http://mail.python.org/mailman/listinfo/python-list The information contained in this message and any attachment may be proprietary, confidential, and privileged or subject to the work product doctrine and thus protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify me immediately by replying to this message and deleting it and all copies and backups thereof. Thank you. -- http://mail.python.org/mailman/listinfo/python-list