Question Comment lire un fichier texte dans une variable de chaîne en Python


J'utilise le segment de code suivant pour lire un fichier en python

with open ("data.txt", "r") as myfile:
    data=myfile.readlines()

le fichier d'entrée est

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

et quand j'imprime des données je reçois

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

Comme je vois les données sont sous forme de liste. Comment puis-je faire de la chaîne. Et comment puis-je supprimer les caractères "\ n", "[" et "]" de celui-ci?


633
2017-12-03 16:47


origine


Réponses:


Vous pouvez utiliser:

with open('data.txt', 'r') as myfile:
    data=myfile.read().replace('\n', '')

862
2017-12-03 17:06



utilise read (), pas readline ()

with open('data.txt', 'r') as myfile:
  data = myfile.read()

448
2018-04-18 12:27



Vous pouvez lire à partir d'un fichier sur une ligne:

str = open('very_Important.txt', 'r').read()

Notez que cela ne ferme pas le fichier explicitement.

CPython fermera le fichier lorsqu'il sera fermé dans le cadre de la récupération de place.

Mais d'autres implémentations python ne le seront pas. Pour écrire du code portable, il vaut mieux utiliser with ou fermez le fichier explicitement. Short n'est pas toujours mieux. Voir https://stackoverflow.com/a/7396043/362951


42
2017-12-03 02:52



La manière simple:

file = open('data.txt', 'r')
text = file.read().strip()
file.close()

33
2018-03-21 03:10



with open("data.txt") as myfile:
    data="".join(line.rstrip() for line in myfile)

join () rejoindra une liste de chaînes, et rstrip () sans argument écrira les espaces, y compris les retours à la ligne, à la fin des chaînes.


26
2017-12-03 16:55



En Python 3.5 ou version ultérieure, en utilisant pathlib vous pouvez copier le contenu du fichier texte dans une variable et ferme le fichier en une ligne:

from pathlib import Path
txt = Path('data.txt').read_text()

5
2018-03-29 20:26



J'ai tripoté avec ça pendant un moment et j'ai préféré utiliser read en combinaison avec rstrip. Sans pour autant rstrip("\n"), Python ajoute une nouvelle ligne à la fin de la chaîne, ce qui dans la plupart des cas n'est pas très utile.

with open("myfile.txt") as f:
    file_content = f.read().rstrip("\n")
    print file_content

5
2018-04-28 07:46



Il est difficile de dire exactement ce que vous recherchez, mais quelque chose comme ça devrait vous aider à démarrer:

with open ("data.txt", "r") as myfile:
    data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])

4
2017-12-03 16:51