[Tutor] create an xls file using data from a txt file

James Reynolds eire1130 at gmail.com
Wed May 11 19:26:13 CEST 2011


your "\" is a "/"

when writing out a string, such as 'C:\test.xls', the "/" is an escape in
python. So you have two choices, You can either write out path
= 'C:\\test.xls', which will be 'C:\test.xls' or you can write out path =
r'C:\test.xls' the "r" bit tells python that the following is a regular
expression. or regex.

You can also use Walter's method above.

On Wed, May 11, 2011 at 1:10 PM, tax botsis <taxbotsis at gmail.com> wrote:

> James,
> how would you save the workbook into a specific directory? I tried to run
> that:
>
> workbook.save('C:/test.xls')
>
> but I get the following error:
>
>
> Traceback (most recent call last):
>   File "<pyshell#50>", line 1, in <module>
>     wbk.save("C:/test.xls")
>   File "C:\Python26\lib\site-packages\xlwt\Workbook.py", line 634, in save
>     doc.save(filename, self.get_biff_data())
>   File "C:\Python26\lib\site-packages\xlwt\Workbook.py", line 615, in
> get_biff_data
>     self.__worksheets[self.__active_sheet].selected = True
> IndexError: list index out of range
>
> Thanks
> Tax
>
>
> 2011/5/11 James Reynolds <eire1130 at gmail.com>
>
>> Slow day at work, so I tried something a little different mostly as a
>> learning exercise for myself, let me know what you all think.
>>
>> I thought it would be useful to have a writer that scales and that
>> organizes the data. For example, you might have 20 tests one day, and 5 the
>> next.
>>
>> I broke up the data into dictionaries where the IDs were keys, and
>> everything that follows is a tuple of testX and result.
>>
>> Instead of iterating through each column, it only writes to the columns
>> where data is present.
>>
>> Disclaimer: I am copying and pasting into Gmail, which sometimes screws up
>> indents.
>>
>> I also put it into pastebin, which was pretty exciting considering I have
>> never used it before:
>>
>> http://pastebin.com/2Dke5FtX
>>
>> import xlwt
>>
>>
>> class Parser:
>>     '''
>>     classdocs
>>     '''
>>
>>
>>     def __init__(self, test, result):
>>         '''
>>         Constructor
>>         '''
>>         self.result = result
>>         self.test = test
>>         self.id = int(self.test[4:])
>>
>> x = open('test.txt')
>>
>> id_dict = {}
>>
>> for all in x:
>>     y = all.split(" ")
>>     y[-1] = y[-1].strip()
>>     id_dict[y[0]] = y[1:]
>>
>> max_test = 0
>> for key, lists in id_dict.items():
>>     length = len(lists)/2
>>     a = 0
>>     parser_list = []
>>     for items in range(length):
>>         t = (lists[a], lists[a+1])
>>         p = Parser(*t)
>>         parser_list.append(p)
>>         if max_test < p.id:
>>             max_test = p.id
>>         a +=2
>>     id_dict[key] = parser_list
>>
>>
>> workbook = xlwt.Workbook()
>> worksheet = workbook.add_sheet("testruns", cell_overwrite_ok=True)
>> header = 'TEST{0}'
>> headers = ['ID']
>> range_id = range(max_test +1)
>> for all in range_id[1:]:
>>     headers.append(header.format(all))
>>
>> for i, colno in enumerate(headers):
>>     print i, type(i)
>>     worksheet.write(0, i, colno)
>> rowno = 1
>> for keys, values in id_dict.items():
>>     worksheet.write(rowno, 0, keys)
>>     for object_lists in values:
>>         worksheet.write(rowno, object_lists.id , object_lists.result)
>>     rowno +=1
>>
>>
>> workbook.save("test.xls")
>>
>>
>>
>>
>> On Wed, May 11, 2011 at 9:58 AM, Walter Prins <wprins at gmail.com> wrote:
>>
>>>
>>>
>>> On 11 May 2011 14:34, tee chwee liong <tcl76 at hotmail.com> wrote:
>>>
>>>>  hi all,
>>>>
>>>> thanks for this sharing. when i copy and run this code, i got this
>>>> error:
>>>>
>>>> Traceback (most recent call last):
>>>>   File "C:/Python25/myscript/excel/sampleexcel.py", line 1, in <module>
>>>>     import csv
>>>>   File "C:/Python25/myscript/excel\csv.py", line 3, in <module>
>>>>     w=csv.writer(open('output.csv','w'))
>>>> AttributeError: 'module' object has no attribute 'writer'
>>>>
>>>>
>>> Well, reading the error message, it's saying that module "csv", coming
>>> from file "C:/Python25/myscript/excel\
>>> csv.py" has no member "writer".  So, it seems you've called your test
>>> script (module) "csv" which effecitvely hid the standard python "csv"
>>> module.
>>>
>>> Try renaming your script file to something else ('testcsv.py' maybe) so
>>> its name doesn't conflict with the standard "csv" module and try again.
>>>
>>> Walter
>>>
>>> _______________________________________________
>>>
>>> Tutor maillist  -  Tutor at python.org
>>> To unsubscribe or change subscription options:
>>> http://mail.python.org/mailman/listinfo/tutor
>>>
>>>
>>
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> To unsubscribe or change subscription options:
>> http://mail.python.org/mailman/listinfo/tutor
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110511/ae2a3dab/attachment-0001.html>


More information about the Tutor mailing list