Ik gebruik het volgende codesegment om een bestand in python te lezen:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
Invoerbestand is:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
en als ik gegevens afdruk, krijg ik
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Zoals ik zie zijn de gegevens in list
-vorm. Hoe maak ik het touwtje? En ook hoe verwijder ik de tekens "\n"
, "["
en "]"
eruit?
Antwoord 1, autoriteit 100%
Je zou kunnen gebruiken:
with open('data.txt', 'r') as file:
data = file.read().replace('\n', '')
Antwoord 2, autoriteit 7%
In Python 3.5 of hoger, met behulp van pathlibje kunt de inhoud van een tekstbestand kopiëren naar een variabele en het bestandop één regel sluiten:
from pathlib import Path
txt = Path('data.txt').read_text()
en dan kun je str.replacegebruiken om de nieuwe regels:
txt = txt.replace('\n', '')
Antwoord 3, autoriteit 6%
Je kunt in één regel uit een bestand lezen:
str = open('very_Important.txt', 'r').read()
Houd er rekening mee dat dit het bestand niet expliciet sluit.
CPython sluit het bestand wanneer het wordt afgesloten als onderdeel van de garbagecollection.
Maar andere python-implementaties niet. Om draagbare code te schrijven, is het beter om with
te gebruiken of het bestand expliciet te sluiten. Kort is niet altijd beter. Zie https://stackoverflow.com/a/7396043/362951
Antwoord 4, autoriteit 4%
Om alle regels samen te voegen tot een string en nieuwe regels te verwijderen, gebruik ik normaal gesproken :
with open('t.txt') as f:
s = " ".join([l.rstrip() for l in f])
Antwoord 5, autoriteit 2%
with open("data.txt") as myfile:
data="".join(line.rstrip() for line in myfile)
join() voegt zich bij een lijst met tekenreeksen en rstrip() zonder argumenten zal witruimte, inclusief nieuwe regels, vanaf het einde van tekenreeksen bijsnijden.
Antwoord 6
Dit kan worden gedaan met de methode read() :
text_as_string = open('Your_Text_File.txt', 'r').read()
Of aangezien de standaardmodus zelf ‘r’ (lees) is, gebruik dus gewoon,
text_as_string = open('Your_Text_File.txt').read()
Antwoord 7
Het verbaast me dat nog niemand splitlines()
heeft genoemd.
with open ("data.txt", "r") as myfile:
data = myfile.read().splitlines()
Variabele data
is nu een lijst die er als volgt uitziet wanneer deze wordt afgedrukt:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Let op: er zijn geen nieuwe regels (\n
).
Op dat moment klinkt het alsof je de regels terug naar de console wilt afdrukken, wat je kunt bereiken met een for-lus:
for line in data:
print(line)
Antwoord 8
Ik speel hier al een tijdje mee en gebruik het liefst read
in combinatie met rstrip
. Zonder rstrip("\n")
voegt Python een nieuwe regel toe aan het einde van de string, wat in de meeste gevallen niet erg handig is.
with open("myfile.txt") as f:
file_content = f.read().rstrip("\n")
print(file_content)
Antwoord 9
Het is moeilijk om precies te zeggen wat je zoekt, maar zoiets als dit zou je op weg moeten helpen:
with open ("data.txt", "r") as myfile:
data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])
Antwoord 10
je kunt dit in één tot twee regels code comprimeren!!!
content = open('filepath','r').read().replace('\n',' ')
print(content)
als uw bestand luidt:
hello how are you?
who are you?
blank blank
python-uitvoer
hello how are you? who are you? blank blank
Antwoord 11
Je kunt ook elke regel strippen en samenvoegen tot een laatste tekenreeks.
myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
data = data + line.strip();
Dit zou ook prima werken.
Antwoord 12
Dit is een éénregelige, kopieer-plakbare oplossing die ook het bestandsobject sluit:
_ = open('data.txt', 'r'); data = _.read(); _.close()
Antwoord 13
python3: Google ‘lijstbegrip’ als de syntaxis van vierkante haakjes nieuw voor je is.
with open('data.txt') as f:
lines = [ line.strip('\n') for line in list(f) ]
Antwoord 14
Heb je dit al geprobeerd?
x = "yourfilename.txt"
y = open(x, 'r').read()
print(y)
Antwoord 15
Om regeleinden met Python te verwijderen, kun je de functie replace
van een tekenreeks gebruiken.
Dit voorbeeld verwijdert alle 3 soorten regeleinden:
my_string = open('lala.json').read()
print(my_string)
my_string = my_string.replace("\r","").replace("\n","")
print(my_string)
Voorbeeldbestand is:
{
"lala": "lulu",
"foo": "bar"
}
Je kunt het proberen met dit herhalingsscenario:
https://repl.it/repls/AnnualJointHardware
Antwoord 16
f = open('data.txt','r')
string = ""
while 1:
line = f.readline()
if not line:break
string += line
f.close()
print(string)
Antwoord 17
Ik heb niet het gevoel dat iemand het [ ] deel van uw vraag heeft behandeld. Wanneer je elke regel in je variabele inleest, omdat er meerdere regels waren voordat je de \n verving door ”, heb je uiteindelijk een lijst gemaakt. Als je een variabele van x hebt en deze uitprint door
x
of print(x)
of str(x)
Je ziet de hele lijst met de haakjes. Als je elk element van de (reeks van soorten)
x[0]
dan laat het de haakjes weg. Als u de functie str() gebruikt, ziet u alleen de gegevens en ook niet de ”.
str(x[0])
Antwoord 18
Misschien kun je dit proberen? Ik gebruik dit in mijn programma’s.
Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()
Antwoord 19
Reguliere expressie werkt ook:
import re
with open("depression.txt") as f:
l = re.split(' ', re.sub('\n',' ', f.read()))[:-1]
print (l)
[‘Ik’, ‘voel’, ‘leeg’, ‘en’, ‘dood’, ‘binnen’]
Antwoord 20
Dit werkt:
Wijzig uw bestand in:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
Dan:
file = open("file.txt")
line = file.read()
words = line.split()
Dit creëert een lijst met de naam words
die gelijk is aan:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Daarmee is de “\n” verdwenen. Om het gedeelte over de haakjes die je in de weg staan te beantwoorden, doe je dit:
for word in words: # Assuming words is the list above
print word # Prints each word in file on a different line
Of:
print words[0] + ",", words[1] # Note that the "+" symbol indicates no spaces
#The comma not in parentheses indicates a space
Dit geeft als resultaat:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN, GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
Antwoord 21
with open(player_name, 'r') as myfile:
data=myfile.readline()
list=data.split(" ")
word=list[0]
Deze code helpt u de eerste regel te lezen en vervolgens kunt u met behulp van de lijst- en splitsoptie het woord van de eerste regel, gescheiden door spatie, converteren om in een lijst op te slaan.
Dan heb je gemakkelijk toegang tot elk woord, of zelfs opslaan in een string.
Je kunt hetzelfde ook doen door een for-lus te gebruiken.
Antwoord 22
file = open("myfile.txt", "r")
lines = file.readlines()
str = '' #string declaration
for i in range(len(lines)):
str += lines[i].rstrip('\n') + ' '
print str
Antwoord 23
with open('data.txt', 'r') as file:
data = [line.strip('\n') for line in file.readlines()]
data = ''.join(data)
Antwoord 24
Probeer het volgende:
with open('data.txt', 'r') as myfile:
data = myfile.read()
sentences = data.split('\\n')
for sentence in sentences:
print(sentence)
Let op: het verwijdert de \n
niet. Het is alleen bedoeld om de tekst te bekijken alsof er geen \n
. is