Par rapport à Java (dans une chaîne), vous feriez quelque chose comme "First Line\r\nSecond Line"
.
Alors, comment feriez-vous cela en Python, dans le but d'écrire plusieurs lignes dans un fichier normal?
python
line-breaks
file-writing
FabianCook
la source
la source
print
fonctionne commeSystem.out.println
en Java et ajoute automatiquement une nouvelle ligne après le texte, non?print
instruction en Python peut également être utilisée pour écrire dans des fichiers (les détails diffèrent entre Python 2.x et Python 3.x, alors vérifiez avec les documents de référence pour votre version).print
en Python 2.x -print
en Python 3.xRéponses:
Cela dépend de la façon dont vous voulez être correct.
\n
fera généralement le travail. Si vous voulez vraiment bien faire les choses, vous recherchez le caractère de nouvelle ligne dans leos
package . (Il s'appelle en faitlinesep
.)Remarque: lors de l'écriture dans des fichiers à l'aide de l'API Python, n'utilisez pas le
os.linesep
. Utilisez simplement\n
; Python traduit automatiquement cela en caractère de nouvelle ligne approprié pour votre plate-forme.la source
"\r\n"
. Cela signifie que ceos.linesep
sera"\r\n"
. Lorsque vous écrivez dans un fichier en mode texte, il effectue la traduction de nouvelle ligne au fur et à mesure de son écriture; c'est-à-dire que chacun"\n"
dans la sortie sera traduit"\r\n"
dans le fichier résultant. Vous pouvez voir comment c'est un problème si le texte que vous écrivez contient déjà des"\r\n"
séquences: le résultat sera"\r\r\n"
à la fin de chaque ligne. Je suppose, au moins: je ne l'ai pas vraiment essayé.os.linesep
proposition, non? Ce ne serait pas un grand drame et la fierté de l'auteur ne souffrirait pas beaucoup je croislinesep
existe et qu'il existe afin que vous puissiez découvrir ce qu'est le séparateur de ligne système.linesep
peut toujours être utile.Le nouveau caractère de ligne est
\n
. Il est utilisé à l'intérieur d'une chaîne.Exemple:
où
\n
est le caractère de nouvelle ligne.Cela donnerait le résultat:
Si vous utilisez Python 2, vous n'utilisez pas les parenthèses sur la fonction d'impression.
la source
Vous pouvez soit écrire dans les nouvelles lignes séparément ou dans une seule chaîne, ce qui est plus facile.
Exemple 1
Contribution
Vous pouvez écrire le '\ n' séparément:
Production
Exemple 2
Contribution
Comme d'autres l'ont souligné dans les réponses précédentes, placez le \ n aux points appropriés de votre chaîne:
Production
la source
Si vous saisissez plusieurs lignes de texte à la fois, je trouve que c'est le format le plus lisible.
Le \ à la fin de chaque ligne échappe à la nouvelle ligne (ce qui provoquerait une erreur).
la source
En Python, vous pouvez simplement utiliser le caractère de nouvelle ligne, c'est-à-dire
\n
la source
Solution la plus simple
Si vous appelez uniquement
print
sans argument, il affichera une ligne vierge.Vous pouvez diriger la sortie vers un fichier comme celui-ci (en considérant votre exemple):
Non seulement il est indépendant du système d'exploitation (sans même avoir à utiliser le
os
package), il est également plus lisible que de mettre des\n
chaînes.Explication
La
print()
fonction a un argument de mot clé facultatif pour la fin de la chaîne, appeléend
, qui par défaut est le caractère de nouvelle ligne du système d'exploitation, par exemple.\n
. Ainsi, lorsque vous appelezprint('hello')
, Python imprime réellement'hello' + '\n'
. Ce qui signifie que lorsque vous appelezprint
sans aucun argument, c'est en fait l'impression'' + '\n'
, ce qui entraîne une nouvelle ligne.Alternative
Utilisez des chaînes multilignes.
la source
Disjoncteur indépendant de la plate-forme: Linux, Windows et IOS
Production:
la source
De la même manière
'\n'
, bien que vous n'en ayez probablement pas besoin'\r'
. Y a-t-il une raison pour laquelle vous l'avez dans votre version Java? Si vous en avez besoin / le souhaitez, vous pouvez également l'utiliser de la même manière en Python.la source
\r
est le retour chariot, lorsque vous obtenez la propriété système pour la nouvelle ligne, elle apparaît comme\r\n
\n
c'est le seul caractère de nouvelle ligne.\n
.\ n - l'insertion de caractères de nouvelle ligne simple fonctionne:
la source
La plupart des caractères d'échappement dans les littéraux de chaîne de Java sont également valides en Python, tels que "\ r" et "\ n".
la source
Comme mentionné dans d'autres réponses: "Le nouveau caractère de ligne est \ n. Il est utilisé à l'intérieur d'une chaîne".
J'ai trouvé que le moyen le plus simple et le plus lisible est d'utiliser la fonction "format", en utilisant nl comme nom pour la nouvelle ligne, et de casser la chaîne que vous souhaitez imprimer au format exact que vous allez imprimer:
Cela produira:
De cette façon, il effectue la tâche et donne également une grande lisibilité du code :)
la source
\ n sépare les lignes d'une chaîne. Dans l'exemple suivant, je continue d'écrire les enregistrements dans une boucle. Chaque enregistrement est séparé par
\n
.la source
Il convient de noter que lorsque vous inspectez une chaîne à l'aide du shell python interactif ou d'un bloc-notes Jupyter, la chaîne
\n
et les autres chaînes avec barre oblique inverse\t
sont rendues littéralement :Les sauts de ligne, les tabulations et les autres caractères spéciaux non imprimés sont rendus en espaces blancs uniquement lorsqu'ils sont imprimés ou écrits dans un fichier:
la source