Ho trovato un elenco della maggior parte delle parole inglesi online, ma le interruzioni di riga sono di tipo unix (codificate in Unicode: UTF-8). L'ho trovato su questo sito: http://dreamsteep.com/projects/the-english-open-word-list.htmlCome si converte LF in CRLF?
Come si convertono le interruzioni di riga in CRLF in modo che possa scorrere su di esse? Il programma in cui li userò passerà attraverso ogni riga del file, quindi le parole devono essere una per riga.
Questa è una parte del file: bitbackbitebackbiterbackbitersbackbitesbackbitingbackbittenbackboard
Dovrebbe essere:
bit
backbite
backbiter
backbiters
backbites
backbiting
backbitten
backboard
Come posso convertire i miei file di questo tipo? Nota: sono 26 file (uno per lettera) con 80.000 parole o meno in totale (quindi il programma dovrebbe essere molto veloce).
Non so da dove iniziare perché non ho mai lavorato con unicode. Grazie in anticipo!
Utilizzando rU
come parametro (come suggerito), con questo nel mio codice:
with open(my_file_name, 'rU') as my_file:
for line in my_file:
new_words.append(str(line))
my_file.close()
ottengo questo errore:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
addWords('B Words')
File "D:\my_stuff\Google Drive\documents\SCHOOL\Programming\Python\Programming Class\hangman.py", line 138, in addWords
for line in my_file:
File "C:\Python3.3\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 7488: character maps to <undefined>
Qualcuno mi può aiutare con questo?
si potrebbe trovare questo http://stackoverflow.com/questions/3891076/how-to-convert-windows-end-of-line-in-unix-end-of-line-cr-lf-to- Se utile, – dmi3y
, non riesci a rendere il tuo programma in grado di gestire entrambi i tipi di linea che terminano? –
@JamesMcLaughlin Ho già un file con un elenco di parole. Inoltre, non ho mai usato unicode (come detto) quindi non so come gestire questi tipi di finali. –