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 la forme list
. Comment puis-je le faire chaîne? Et aussi comment puis-je supprimer les caractères "\n"
, "["
et "]"
?
Vous pouvez utiliser:
with open('data.txt', 'r') as myfile:
data=myfile.read().replace('\n', '')
utilisez read (), pas readline ()
with open('data.txt', 'r') as myfile:
data = myfile.read()
Vous pouvez lire un fichier en une ligne:
str = open('very_Important.txt', 'r').read()
Veuillez noter que cela ne ferme pas le fichier explicitement.
CPython fermera le fichier à sa sortie dans le cadre du garbage collection.
Mais d'autres implémentations en python ne le seront pas. Pour écrire du code portable, il est préférable d’utiliser with
ou de fermer le fichier explicitement. Bref, ce n'est pas toujours mieux. Voir https://stackoverflow.com/a/7396043/362951
La manière simple:
file = open('data.txt', 'r')
text = file.read().strip()
file.close()
Utilisation de with
(recommandé):
with open('data.txt', encoding='utf8') as f:
text = f.read().strip()
Remarque: pas besoin de fermer le fichier, with
fait automatiquement .
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, supprimera les espaces, y compris les nouvelles lignes, à la fin des chaînes.
Dans Python 3.5 ou version ultérieure, en utilisant pathlib , vous pouvez copier le contenu du fichier texte dans une variable et fermer le fichier sur une ligne:
from pathlib import Path
txt = Path('data.txt').read_text()
et ensuite vous pouvez utiliser str.replace pour supprimer les nouvelles lignes:
txt = txt.replace('\n', '')
Cela fait un moment que je bricole avec cela et préfère utiliser read
en combinaison avec rstrip
. Sans 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
Cela peut être fait en utilisant la méthode read ():
text_as_string = open('Your_Text_File.txt', 'r').read()
Ou comme le mode par défaut lui-même est 'r' (lire), utilisez donc simplement,
text_as_string = open('Your_Text_File.txt').read()
Il est difficile de dire exactement ce que vous recherchez, mais quelque chose comme cela devrait vous aider à démarrer:
with open ("data.txt", "r") as myfile:
data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])
Il s’agit d’une solution une ligne, copier-coller, qui ferme également l’objet fichier:
_ = open('data.txt', 'r'); data = _.read(); _.close()
Vous pouvez également supprimer chaque ligne et les concaténer dans une chaîne finale.
myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
data = data + line.strip();
Cela fonctionnerait aussi très bien.
f = open('data.txt','r')
string = ""
while 1:
line = f.readline()
if not line:break
string += line
f.close()
print string
vous pouvez compresser cela en une ligne de code !!!
content = open('filepath','r').read().replace('\n',' ')
print(content)
si votre fichier se lit comme suit:
hello how are you?
who are you?
blank blank
sortie python
hello how are you? who are you? blank blank
python3: "liste de compréhension" de Google si la syntaxe entre crochets est nouvelle pour vous.
with open('data.txt') as f:
lines = [ line.strip( ) for line in list(f) ]
Avez-vous essayé cela?
x = "yourfilename.txt"
y = open(x, 'r').read()
print(y)
Je ne pense pas que quiconque ait répondu à la partie [] de votre question. Lorsque vous avez lu chaque ligne de votre variable, il y avait plusieurs lignes avant que vous ne remplaciez le\n par '', vous avez fini par créer une liste. Si vous avez une variable de x et l’imprimez juste en
x
ou imprimer (x)
ou str (x)
Vous verrez la liste complète avec les crochets. Si vous appelez chaque élément de la (tableau de tri)
x [0] alors il omet les crochets. Si vous utilisez la fonction str (), vous ne verrez que les données et non le '' ..... str (x [0])
Je suis surpris que personne n'ait encore mentionné splitlines()
.
with open ("data.txt", "r") as myfile:
data = myfile.read().splitlines()
La variable data
est maintenant une liste qui ressemble à ceci une fois imprimée:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Notez qu'il n'y a pas de saut de ligne (\n
).
À ce stade, il semble que vous souhaitiez imprimer les lignes sur la console, ce que vous pouvez obtenir avec une boucle for:
for line in data:
print line
Cela fonctionne: Changez votre fichier en:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
Ensuite:
file = open("file.txt")
line = file.read()
words = line.split()
Cela crée une liste nommée words
qui est égale à:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Cela s'est débarrassé du "\ n". Pour répondre à la partie concernant les crochets qui vous gênent, procédez comme suit:
for Word in words: # Assuming words is the list above
print Word # Prints each Word in file on a different line
Ou:
print words[0] + ",", words[1] # Note that the "+" symbol indicates no spaces
#The comma not in parentheses indicates a space
Cela retourne:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN, GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
Peut-être que tu pourrais essayer ça? Je l'utilise dans mes programmes.
Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()
file = open("myfile.txt", "r")
lines = file.readlines()
str = '' #string declaration
for i in range(len(lines)):
str += lines[i].rstrip('\n') + ' '
print str
with open(player_name, 'r') as myfile:
data=myfile.readline()
list=data.split(" ")
Word=list[0]
Ce code vous aidera à lire la première ligne, puis à utiliser l'option de liste et de division, vous pourrez convertir la première ligne Word séparée par des espaces pour la stocker dans une liste.
Que vous pouvez facilement accéder à n'importe quel mot, ou même le stocker dans une chaîne.
Vous pouvez également faire la même chose en utilisant une boucle for.
L'expression régulière fonctionne aussi:
import re
with open("depression.txt") as f:
l = re.split(' ', re.sub('\n',' ', f.read()))[:-1]
print (l)
['Je', 'sentir', 'vide', 'et', 'mort', 'à l'intérieur']