newbe's re question

Eric_Dexter at msn.com Eric_Dexter at msn.com
Wed Sep 20 19:57:26 EDT 2006


Frederic Rentsch wrote:
> Eric_Dexter at msn.com wrote:
> > Frederic Rentsch wrote:
> >
> >> Eric_Dexter at msn.com wrote:
> >>
> >>> All I am after realy is to change this
> >>>
> >>>  reline = re.line.split('instr', '/d$')
> >>>
> >>> into something that grabs any line with instr in it take all the
> >>> numbers and then grab any comment that may or may not be at the end of
> >>> the line starting with ; until the end of the line including white
> >>> spaces..  this is a corrected version from
> >>>
> >>> http://python-forum.org/py/viewtopic.php?t=1703
> >>>
> >>> thanks in advance the hole routine is down below..
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> [code]
> >>> def extractCsdInstrument (input_File_Name, output_File_Name,
> >>> instr_number):
> >>>
> >>>     "takes an .csd input file and grabs instr_number instrument and
> >>> creates output_File_Name"
> >>>     f = open (input_File_Name , 'r')                #opens file passed
> >>> in to read
> >>>     f2 = open (output_File_Name, 'w')               #opens file passed
> >>> in to write
> >>>     instr_yes = 'false'                             #set flag to false
> >>>
> >>>     for line in f:                                  #for through all
> >>> the lines
> >>>       if "instr" in line:                           #look for instr in
> >>> the file
> >>>            if instr_yes == 'true':                    #check to see if
> >>> this ends the instr block
> >>>                break                                #exit the block
> >>>
> >>>            reline = re.line.split('instr', '/d$')     #error probily
> >>> split instr and /d (decimal number into parts) $ for end of line
> >>>            number = int(reline[1])                  #convert to a
> >>> number maybe not important
> >>>                 if number == instr_number:            #check to see if
> >>> it is the instr passed to function
> >>>                 instr_yes = "true":                 #change flag to
> >>> true because this is the instr we want
> >>>       if instr_yes = "true":                        #start of code to
> >>> copy to another file
> >>>            f2.write(f.line)                         #write line to
> >>> output file
> >>>
> >>>     f.close                                         #close input file
> >>>     f2.close
> >>>
> >>> [/code]
> >>>
> >>>
> >>>
> >> Eric,
> >>       From your problem description and your code it is unclear what
> >> exactly it is you want. The task appears to be rather simple, though,
> >> and if you don't get much useful help I'd say it is because you don't
> >> explain it very well.
> >>       I believe we've been through this before and your input data is
> >> like this
> >>
> >>    data = '''
> >>    <CsoundSynthesizer>;
> >>      ; test.csd - a Csound structured data file
> >>
> >>    <CsOptions>
> >>      -W -d -o tone.wav
> >>    </CsOptions>
> >>
> >>    <CsVersion>    ;optional section
> >>      Before 4.10  ;these two statements check for
> >>      After 4.08   ;   Csound version 4.09
> >>    </CsVersion>
> >>
> >>    <CsInstruments>
> >>      ; originally tone.orc
> >>      sr = 44100
> >>      kr = 4410
> >>      ksmps = 10
> >>      nchnls = 1
> >>      instr   1
> >>          a1 oscil p4, p5, 1 ; simple oscillator
> >>             out a1
> >>        endin
> >>    </CsInstruments>
> >>
> >>    <CsScore>
> >>      ; originally tone.sco
> >>      f1 0 8192 10 1
> >>      i1 0 1 20000 1000 ;play one second of one kHz tone
> >>      e
> >>    </CsScore>
> >>
> >>    </CsoundSynthesizer>
> >>
> >> Question 1: Is this your input?
> >> if yes:
> >>     Question 1.1: What do you want to extract from it? In what format?
> >> if no:
> >>     Question 1.1: What is your input?
> >>     Question 1.2: What do you want to extract from it? In what format?
> >> Question 2: Do you need to generate output file names from the data?
> >> (One file per instrument?)
> >> if yes:
> >>    Question 2.1: What do you want to make your file name from?
> >> (Instrument number?)
> >>
> >>
> >> Regards
> >>
> >> Frederic
> >>
> >
> > I want to pass the file name to the subroutine and return a comment
> > string if it is there maybe it should be simplier.  I probily should
> > have the option of grabbing the comment in other related routines.  I
> > am pretty ambitious with the main program.  I did notice some code in
> > tcl that would be usefull to the app If I compile it..  I am probily
> > not ready for that though..
> >
> > http://www.dexrow.com
> >
> >
>
> Eric,
>      I'm beginning to enjoy this. I'm sure we'll sort this out in no
> time if we proceed methodically. Imagine you are a teacher and I am your
> student. This is a quiz. I have to take it and you need to explain to me
> the problem you want me to solve. If you don't explain it clearly, I
> will not know what I have to do and cannot do the quiz. If you answer my
> questions above, your description of the problem will be clear and I can
> take the quiz. Okay?
>
> Frederic


instr   1
         a1 oscil p4, p5, 1 ; simple oscillator    ; comment is
sometimes here
            out a1
       endin


I need to know the file I wan't to grab this from I need to grab this
out of the larger file and put it into it's own file,  I need to know
what instr the user wants.  I need to know what file to put it into and
it would be usefull to have the comment line returned (if any).

I did just get python essential reference 3rd edition..  If there is a
better reference on just the subject I am after I would be glad to grab
it when I get cash again.




More information about the Python-list mailing list