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