Shriphani wrote: > Hello all, > > I am trying to create a script that looks at specific strings in a > file like: > > msgid "I am a disco dancer." > > and compares the part in quotes to the keys in a dictionary, finds the > value and creates a new line right after this string in the file. I > have planned to write this as follows: > > 1. Open the file in read mode > 2. parse each line to figure out which line contains "msgid" and use > the shlex module's split method to go and split this line and pick the > 2nd element list[1]. > 3. find the value from the dictionary corresponding to the above > element. > 4. Insert the line. This part is where I face a problem. How do I > plainly edit just one line. I would also like to look at some sample > code that does this. > 5. open a new file and write the new file with the inserted strings to > it. > 6. close both files opened. > > Regards, > Shriphani Palakodety >
Sounds like homework, but I'm feeling generous (not tested). xlate={'"I am a disco dancer."':'"but John Travolta is better"'} fp1=open('inputfile.txt', 'r') fp2=open('outputfile.txt', 'w') for line in fp1: # # Your description is unclear here about whether the new line # replaces the existing one or is inserted after it. # fp2.writeline(line) if line.startswith('msgid'): parts=line.split(' ') try: parts[1]=xlate[parts[1]] except: # # Handle exception if your translation dictionary does # not have the string you are looking for here. # raise KeyError newline=' '.join(parts) fp2.writeline(newline) fp1.close() fp2.close() -Larry -- http://mail.python.org/mailman/listinfo/python-list