¿Cómo convierto LF a CRLF?

Encontré una lista de la mayoría de las palabras en inglés en línea, pero los saltos de línea son de estilo Unix (codificados en Unicode: UTF-8). Lo encontré en este sitio web: http://dreamsteep.com/projects/the-english-open-word-list.html

¿Cómo convierto los saltos de línea a CRLF para poder iterarlos? El progtwig en el que los utilizaré pasa por cada línea del archivo, por lo que las palabras deben ser una por línea.

Esta es una parte del archivo: bitbackbitebackbiterbackbitersbackbitesbackbitingbackbittenbackboard

Debería ser:

 bit backbite backbiter backbiters backbites backbiting backbitten backboard 

¿Cómo puedo convertir mis archivos a este tipo? Nota: son 26 archivos (uno por letra) con 80,000 palabras aproximadamente (el progtwig debería ser muy rápido).

No sé por dónde empezar porque nunca he trabajado con Unicode. ¡Gracias por adelantado!

Utilizando rU como parámetro (como se sugiere), con esto en mi código:

 with open(my_file_name, 'rU') as my_file: for line in my_file: new_words.append(str(line)) my_file.close() 

Me sale este error:

 Traceback (most recent call last): File "", line 1, in  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  

Puede alguien ayudarme con esto?

En lugar de convertir, deberías poder abrir el archivo utilizando el soporte de nueva línea universal de Python:

 f = open('words.txt', 'rU') 

(Tenga en cuenta la U ).

Puede utilizar el método de reemplazo de cadenas. Me gusta

 txt.replace('\n', '\r\n') 

EDITAR:
en tu caso :

 with open('input.txt') as inp, open('output.txt', 'w') as out: txt = inp.read() txt = txt.replace('\n', '\r\n') out.write(txt) 

No es necesario convertir los finales de línea en los archivos para poder iterar sobre ellos. Como lo sugiere la NPE, simplemente use el modo de líneas nuevas universales de python .

El UnicodeDecodeError ocurre porque los archivos que está procesando están codificados como UTF-8 y cuando intenta decodificar el contenido de bytes a una cadena, a través de str(line) , Python usa la encoding cp1252 para convertir los bytes leídos del archivo a una cadena Python 3 (es decir, una secuencia de puntos de código Unicode). Sin embargo, hay bytes en esos archivos que no se pueden decodificar con la encoding cp1252 y que causa un error UnicodeDecodeError.

Si cambia str(line) a line.decode('utf-8') ya no debería obtener el UnicodeDecodeError. Echa un vistazo a las Vs de texto. Datos en lugar de Unicode vs. Escritura de 8 bits para más detalles.

Finalmente, también puede encontrar El Absoluto Mínimo de todos los desarrolladores de software Absolutamente, Positivamente Debe Saber sobre Unicode y los Conjuntos de Caracteres (¡Sin excusas!) Por Joel Spolsky.