try:
data=open('info.txt')
for each_line in data:
try:
(role,line_spoken)=each_line.split(':',1)
print(role,end='')
print(' said: ',end='')
print(line_spoken,end='')
except ValueError:
print(each_line)
data.close()
except IOError:
print("File is missing")
Dosya satırını yazdırırken, kod, önüne "ï» ¿"yani üç gereksiz karakter ekleme eğilimindedir.Python kodum neden bir metin dosyasından okurken fazladan karakterler "ï» ¿"yazıyor?
Gerçek çıkışı:
Man said: Is this the right room for an argument?
Other Man said: I've told you once.
Man said: No you haven't!
Other Man said: Yes I have.
Beklenen çıkış: Ben Python 2. farklı kodlamalar kolları Python 3, bu bir kopyasını bulamıyorum
Man said: Is this the right room for an argument?
Other Man said: I've told you once.
Man said: No you haven't!
Other Man said: Yes I have.
Dosyanız muhtemelen UTF-8 __with__ BOM'da kodlanmıştır. İstediğiniz bu değilse, _without_ BOM kodlayın. –
Olası kopyası [Bir dosyanın başlangıcından ï »¿öğesini nasıl kaldırırım?] (Http://stackoverflow.com/questions/3255993/how-do-i-remove-%c3%af-from-the- dosya başlangıcı) –
@MarcB Bunun bir kopyası değil; Python PHP değildir ve UTF-8 BOM'u işlemek için daha iyi seçeneklere sahiptir. OP, 'open()' çağrısına 'encoding = 'utf-8-sig' 'komutunu verin. – senshin