
Questo articolo descrive come gestire le stringhe incluse le interruzioni di riga (feed di riga, nuove righe) in Python.
- Crea una stringa contenente interruzioni di riga
- Codice di nuova riga n(LF), rn(CR + LF)
- Tripla virgoletta ”’ o “””
- Con tratto
- Concatena un elenco di stringhe su nuove righe
- Dividi una stringa in un elenco per interruzioni di riga:
splitlines()
- Rimuovere o sostituire le interruzioni di riga
- Output con print() senza una nuova riga finale
Crea una stringa contenente interruzioni di riga
Codice di nuova riga n(LF), rn(CR + LF)
L’inserimento di un codice di nuova riga n, rn in una stringa risulterà in un’interruzione di riga in quella posizione.
s = 'Line1nLine2nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1rnLine2rnLine3'
print(s)
# Line1
# Line2
# Line3
Su Unix, incluso Mac, viene spesso utilizzato n (LF) e su Windows, rn (CR + LF) viene spesso utilizzato come codice di nuova riga. Alcuni editor di testo consentono di selezionare un codice di nuova riga.
Virgolette tripla ”’, “””
Puoi scrivere una stringa che includa interruzioni di riga con virgolette triple ”’ o “””.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Con tratto
Se si utilizza le virgolette triple e il rientro, come mostrato di seguito, vengono inseriti necessari non spazi.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
Racchiudendo ogni riga tra ” o “”, aggiungendo un’interruzione di riga n alla fine e usando una barra rovesciata , puoi scrivere come segue:
s = 'Line1n'
'Line2n'
'Line3'
print(s)
# Line1
# Line2
# Line3
Utilizza un meccanismo in cui le stringhe letterali vengono concatenate. Vedere il seguente articolo per i dettagli.
Se vuoi aggiungere un rientro nella stringa, aggiungi uno spazio alla stringa su ogni riga.
s = 'Line1n'
' Line2n'
' Line3'
print(s)
# Line1
# Line2
# Line3
Dato che puoi interrompere liberamente le righe tra parentesi (), puoi anche scrivere come usare parentesi () senza usare barre inverse .
s = ('Line1n'
'Line2n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1n'
' Line2n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Se vuoi solo allineare l’inizio di una riga, puoi aggiungere una barra rovesciata alla prima riga di virgolette triple.
s = '''
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Concatena un elenco di stringhe su nuove righe
Puoi concatenare un elenco di stringhe in una singola stringa con il metodo string, join().
Chiamando join() da un codice newline no rn, ogni elemento viene concatenato su nuove righe.
l = ['Line1', 'Line2', 'Line3']
s_n = 'n'.join(l)
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1nLine2nLine3'
s_rn = 'rn'.join(l)
print(s_rn)
# Line1
# Line2
# Line3
print(repr(s_rn))
# 'Line1rnLine2rnLine3'
Come nell’esempio sopra, puoi controllare la stringa con i codici di nuova riga intatti con la funzione incorporata repr().
Dividi una stringa in un elenco per interruzioni di riga:splitlines()
Puoi dividere una stringa per il metodo interrotto Puoi dire riga in un elenco con il metodo string, splitlines().
s = 'Line1nLine2rnLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
Oltre ane rn, è anche diviso per v (tabulazione riga) di (avanzamento modulo), ecc.
Vedere anche il seguente articolo per ulteriori informazioni su splitlines().
Rimuovere o sostituire le interruzioni di riga
Con splitlines() e join(), puoi rimuovere i codici di nuova riga da una stringa o sostituirli con un’altra stringa.
s = 'Line1nLine2rnLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
È anche possibile modificare il codice di nuova riga in una volta. Anche se il codice di nuova riga è misto o sconosciuto, puoi dividerlo con splitlines() e quindi concatenarli con il codice desiderato.
s_n = 'n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1nLine2nLine3'
Poiché splitlines() divide sia n (LF) che rn (CR + LF) come menzionato sopra, non devi preoccuparti di quale codice di nuova riga viene utilizzato nella stringa.
Puoi anche sostituire il codice newline replace().
s = 'Line1nLine2nLine3'
print(s.replace('n', ''))
# Line1Line2Line3
print(s.replace('n', ','))
# Line1,Line2,Line3
Tuttavia, tieni presente che non funzionerà se contiene un codice di nuova riga diverso da quello previsto.
s = 'Line1nLine2rnLine3'
s_error = s.replace('n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2r,Line3'
s_error = s.replace('rn', ',')
print(s_error)
# Line1
# Line2,Line3
print(repr(s_error))
# 'Line1nLine2,Line3'
Puoi ripetere replace() per sostituire più codici di nuova riga, ma poiché rn contiene n, non funziona bene se lo fai nell’ordine sbagliato. Come accennato in precedenza, l’uso di splitlines() e join() è sicuro perché non devi preoccuparti dei codici di avanzamento riga.
s = 'Line1nLine2rnLine3'
print(s.replace('rn', ',').replace('n', ','))
# Line1,Line2,Line3
s_error = s.replace('n', ',').replace('rn', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2r,Line3'
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Puoi usare rstrip() per rimuovere il codice di nuova riga finale.
s = 'aaan'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Output con print() senza una nuova riga finale
Per impostazione predefinita, print() aggiunge una nuova riga alla fine. Pertanto, se si esegue print() continuamente, ogni risultato di output verrà visualizzato con un’interruzione di riga.
print('a')
print('b')
print('c')
# a
# b
# c
Questo perché il valore predefinito dell’argomento end of print(), che specifica la stringa da aggiungere alla fine, è ‘n’.
Se alla fine viene specificata la stringa vuota ”, alla fine non si verificherà un’interruzione di riga.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
Qualsiasi stringa può essere specificata alla fine.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Tuttavia, se si desidera concatenare le stringhe di caratteri e l’output, è più semplice concatenare le stringhe di originali. Vedi il seguente articolo.