2009-08-03 23 views
21

La funzione os.write può essere utilizzata per scrivere byte in un descrittore di file (non oggetto file). Se eseguo os.write(fd, '\n'), nel file verrà scritto solo il carattere LF, anche su Windows. Mi piacerebbe avere CRLF nel file su Windows e solo LF in Linux.
Qual è il modo migliore per raggiungere questo obiettivo?Come scrivere un carattere di fine riga nativo in un descrittore di file in Python?

Sto usando Python 2.6, ma mi chiedo anche se Python 3 abbia una soluzione diversa.

+0

'os.write' ha bisogno dell'FD come primo argomento - pls risolve questa domanda! E no, Python 3 non è essenzialmente diverso (tranne che vuole i bytestrings, non il testo - che è sempre Unicode in Python 3 - nelle chiamate os.whatever). –

+0

Hai ragione, grazie! – hcs42

risposta

46

Utilizzare questa

import os 
os.write(fd, os.linesep) 
8

Come su os.write(<file descriptor>, os.linesep)? (import os non è necessario perché sembra che tu l'abbia già importato, altrimenti dovresti ricevere degli errori usando os.write per cominciare.)

Problemi correlati