newbe's re question

Frederic Rentsch anthra.norell at vtxmail.ch
Wed Sep 20 13:43:02 EDT 2006


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







More information about the Python-list mailing list