I'm trying to filter a file, to get rid of some characters I don't want in it.
The easiest thing to do is use the string method replace. For example:
char = "1" a = open("Myfile.txt","r") b = a.read() a.close()
b = b.replace(char,"")
a = open("Myfile.txt","w") ## Notice "w" so we can replace the file
a.write(b)
a.closeI've got the "Python Cookbook", which handily seems to do what I want, but:
a) doesn't quite and b) I don't understand it
I'm trying to use the string.maketrans() and string.translate(). From what I've read (in the book and the Python Docs), I need to make a translation table, (using maketrans) and then pass the table, plus and optional set of characters to be deleted, to the translate() function.
I've never messed with translate() etc...
I've tried:
#!/usr/bin/python import string test="1,2,3,bob,%,)" allchar=string.maketrans('','') #This aiming to delete the % and ): x=''.translate(test,allchar,"%,)")
but get: TypeError: translate expected at most 2 arguments, got 3
Ah, your test uses more than one replace factor. So, this should do what you want..
#####
x = " [ text ] " # Replace this with your file output -- possibly fileobject.read()
def removechar(stri, char):
return stri.replace(char,"")
test = "1,2,3,bob,%,)"
allchar = test.split(",") # this makes allchar = ['1','2','3','bob','%',')']
for char in allchar:
x = removechar(x,char)
######
Remember, if you need help--just ask. Oh, and don't give up hope!
HTH, Jacob
_______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
