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