Issue with writelines

LeeRisq leerisq at gmail.com
Wed Sep 2 09:20:01 EDT 2009


I've written this program that has been working fine until today.
Can't work out why it stopped working. The program pulls a list from
an xls file, inserts each item from the list into a repeating string,
that then concatenates the repeating string and writes it to a text
file. It has worked fine until today, and now for some reason, it
stops after 30 items in my list. I also just tried another list, and
that one stopped after 70 items. Perhaps someone could take a look?

Here's the file followed by the traceback:

import xlrd
import win32clipboard



def program_uno():
    ofile = open(r"C:\Query\DQLVault.txt", "w")
    book = xlrd.open_workbook(r"C:\DocLoader\MCL_Drawing and Legacy
Docloader Sheet.xls")
    sh = book.sheet_by_index(0)
    e = sh.cell_value(1, 0)
    a = sh.col_values(0, start_rowx=2, end_rowx=200)
    b = r'%' + e
    c = r'%Master-V%'
    y = r"SELECT object_name, bp_master_date, revision,
bp_revision_date, bp_unit_no, r_version_label, r_object_id,
r_lock_owner, r_content_size, a_content_type, r_modify_date,
r_object_type, r_link_cnt, r_assembled_from_id, r_has_frzn_assembly,
a_is_hidden, i_is_replica, i_is_reference, r_is_virtual_doc,
i_chronicle_id, i_folder_id FROM mcl_engineer (ALL) WHERE (((upper
(object_name) like upper('%s')) and (any upper(r_version_label) like
upper('%s'))" %(b, c)

    w = r")) ORDER BY object_name ASC, r_object_id DESC, i_position
DESC"

    ofile.writelines(y)
    for x in a:
        d = r'%' + x
        z = r" or (upper(object_name) like upper('%s')) and (any upper
(r_version_label) like upper('%s'))" %(d, c)
        f = ofile.writelines(z)
    ofile.writelines(w)


def copy_text():
    ifile = open(r"C:\Query\DQLVault.txt", "r")
    text = ifile.read()
    ifile.close()

    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardText(text)
    win32clipboard.CloseClipboard()

program_uno()
copy_text()

Traceback:

  File "C:\Python25\Lib\site-packages\pythonwin\pywin\framework
\scriptutils.py", line 310, in RunScript
    exec codeObject in __main__.__dict__
  File "C:\Query\DQL Vault Revision Check.py", line 34, in <module>
    program_uno()
  File "C:\Query\DQL Vault Revision Check.py", line 20, in program_uno
    f = ofile.writelines(z)
TypeError: writelines() argument must be a sequence of strings







More information about the Python-list mailing list