2014-12-03 7 views
7

E-Mail-ValidierungNicht unterstützte Operation: nicht beschreibbar Python

#Email validator 
import re 

f= open ('ValidEmails.txt', 'w') 

def is_email(): 
    email=input("Enter your email") 
    pattern = '[\.\w]{1,}[@]\w+[.]\w+' 
    file = open('ValidEmails.txt','r') 
    if re.match(pattern, email): 
     file.write(email) 

     file.close 
     print("Valid Email") 
    else: 
     print("Invalid Email") 

#The Menu   
print("The Email validator progam \n") 
print("What do you want to do\n") 
print("Validate the Email") 
print("Quit") 

while True: 
     answer=(input("Press V, or Q : ")) 
     if answer in("V" ,"v"): 
      is_email() 
     elif answer in("Q" ,"q"): 
      break 
     else: 
      print("Invalid response") 

Ich frage mich, warum wird nicht meine Daten an die disk.Python schreiben, sagt, dass mein Betrieb nicht unterstützt wird.

is_email 
    file.write(email) 
io.UnsupportedOperation: not writable 

Soll ich konvertieren E-Mail an eine Zeichenfolge wie folgt oder

file.write(str(email)) 

ist es etwas anderes

ich wahrscheinlich etwas sehr einfach fehle.

+0

Bitte fügen Sie die vollständige Rückverfolgung des angezeigten Fehlers hinzu. –

Antwort

21

Sie öffnen die Variable "Datei" als schreibgeschützt und versuchen dann, darauf zu schreiben. Verwende das "w" -Flag.

file = open('ValidEmails.txt','w') 
... 
file.write(email) 
0
file = open('ValidEmails.txt','wb') 
file.write(email.encode('utf-8', 'ignore')) 

Dies ist Ihr encode error auch lösen.

Verwandte Themen