strange problems with code generation

Eric_Dexter at msn.com Eric_Dexter at msn.com
Fri Dec 1 21:54:23 EST 2006


John Machin wrote:
> Eric_Dexter at msn.com wrote:
> > I am writing out zero byte files with this (using python 2.5).  I have
> > no idea why I am having that problem
>
> Which output file(s) do you mean, temp.orc or temp.sco or both?
> Two possible causes outlined below.
>
> > I am also looking for an example
> > of readlines where I can choose a number of lines say lines 12 to 14
> > and then write them back to disk.
>
> To the same file? There was a long thread on updating text files very
> recently.
>
> >  any help would be apreaceted.
>
> Have you considered deploying a spelling checker?
>
> >
> > import sys as sys2
> > import os as os2
>
> Why the obfuscation?
>
> >
> > def playscoreinrange(from_file, fromline, toline):
> >     "untested way to play a series of lines from a orc, sco combination
> > line 14 may not be correct"
>
> and which is line 14?? According to my count, it is the blank line
> after "outfile2 = open('temp.orc', 'w') "!!
>
> >     print(from_file)
> >     fromfile = os2.path.basename(from_file)
> >     print(fromfile)
> >
> >     orcfilename = fromfile[:-4] + '.orc'
> >     print(orcfilename)
> >     infile2 = open(orcfilename, 'r')
> >     outfile2 = open('temp.orc', 'w')
> >
> >     for line in infile2:
> >         outfile2.write(line)
> >
> >
> >     infile = open(fromfile, 'r')
>
> infile is not used
>
> >     outfile = open('temp.sco','w')
> >
> >     data = sys2.stdin.readlines()
> >     print(data)
>
> and how many lines were there in data when you printed it?
>
> >     for linenumber in range(fromline, toline):
>
> Consider the possibility that fromline >= toline (which may be caused
> by either or both not being of a numerical type).
>
> Did you mean range(fromline, toline + 1) ?
>
> do this:
> print repr(fromline), type(fromline)
> print repr(toline), type(toline)
>
> BTW, print is a *statement*, not a function!
>
> >         outfile.writeline(data[linenumber])
>
> outfile.writeline() ???
>
> | Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
> (Intel)] on win
> 32
> | Type "help", "copyright", "credits" or "license" for more
> information.
> | >>> f = open('fubar.txt', 'w')
> | >>> f.writeline('bzzzzt!\n')
> | Traceback (most recent call last):
> |   File "<stdin>", line 1, in <module>
> | AttributeError: 'file' object has no attribute 'writeline'
>
> So, the body of your loop wasn't executed (or you overlooked the
> exception, or that wasn't the code that was executed) -- so it looks
> like the range was empty (or the problem occurred further upstream).
>
> > https://sourceforge.net/projects/dex-tracker
> > http://www.dexrow.com
> >
> >
> >     os2.startfile('temp.bat')
>
> and what does this do?? Read temp.orc and/or temp.sco before you've
> closed the file(s)?
>
> Where is the code that was used to call this playscoreinrange function?
>
> HTH,
> John

temp bat is

csound temp.orc temp.sco

and it plays the new files I can try closing the other files first.  I
am sure the readlines code is crashing it.  Because I have moved it
befour the code that is reading a line at a time and it would not even
write the second zero byte file.  The comment line is an old line that
I did not update when I made changes.  The code that calls it was
auto-generated but boa-constructer .44  (I haven't updated it yet).


#Boa:Dialog:Dialog2

import wx
import csoundroutines2

def create(parent):
    return Dialog2(parent)

[wxID_DIALOG2, wxID_DIALOG2BUTTON1, wxID_DIALOG2STATICTEXT1,
 wxID_DIALOG2STATICTEXT2, wxID_DIALOG2TEXTCTRL1, wxID_DIALOG2TEXTCTRL2,

] = [wx.NewId() for _init_ctrls in range(6)]

class Dialog2(wx.Dialog):
    From_File = ''
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DIALOG2, name='', parent=prnt,
              pos=wx.Point(759, 203), size=wx.Size(420, 72),
              style=wx.DEFAULT_DIALOG_STYLE, title='play csound lines')
        self.SetClientSize(wx.Size(412, 38))
        self.Bind(wx.EVT_RIGHT_DCLICK, self.OnDialog2RightDclick)

        self.textCtrl1 = wx.TextCtrl(id=wxID_DIALOG2TEXTCTRL1,
name='textCtrl1',
              parent=self, pos=wx.Point(56, 8), size=wx.Size(100, 21),
style=0,
              value='test')

        self.textCtrl2 = wx.TextCtrl(id=wxID_DIALOG2TEXTCTRL2,
name='textCtrl2',
              parent=self, pos=wx.Point(216, 8), size=wx.Size(100, 21),
style=0,
              value='')

        self.staticText1 = wx.StaticText(id=wxID_DIALOG2STATICTEXT1,
              label='from line', name='staticText1', parent=self,
              pos=wx.Point(8, 8), size=wx.Size(41, 13), style=0)
        self.staticText1.SetToolTipString('From Line')
        self.staticText1.SetBackgroundStyle(wx.BG_STYLE_SYSTEM)
        self.staticText1.SetForegroundColour(wx.Colour(255, 0, 0))

        self.staticText2 = wx.StaticText(id=wxID_DIALOG2STATICTEXT2,
              label='To Line', name='staticText2', parent=self,
              pos=wx.Point(168, 8), size=wx.Size(34, 13), style=0)
        self.staticText2.SetForegroundColour(wx.Colour(255, 0, 0))

        self.button1 = wx.Button(id=wxID_DIALOG2BUTTON1, label='play',
              name='button1', parent=self, pos=wx.Point(328, 8),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
              id=wxID_DIALOG2BUTTON1)

    def __init__(self, parent):
        self._init_ctrls(parent)

    def OnDialog2RightDclick(self, event):
        fromline = int(self.textCtrl1.GetValue(self))
        toline   = int(self.textCtrl2.GetValue(self))
        csoundroutines2.playscoreinrange(From_File, fromline,
toline)#needs filename

    def OnButton1Button(self, event):
        fromline = int(self.textCtrl1.GetValue())
        toline   = int(self.textCtrl2.GetValue())
        csoundroutines2.playscoreinrange(self.From_File, fromline,
toline)#needs filename


https://sourceforge.net/projects/dex-tracker




More information about the Python-list mailing list