How do i read a text file as string in python?

I have a text file that looks like:

ABC
DEF

How can I read the file into a single-line string without newlines, in this case creating a string 'ABCDEF'?


For reading the file into a list of lines, but removing the trailing newline character from each line, see How to read a file without newlines?.

asked Dec 3, 2011 at 16:47

6

You could use:

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

Or if the file content is guaranteed to be one-line

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

OneCricketeer

160k18 gold badges119 silver badges219 bronze badges

answered Dec 3, 2011 at 17:06

sleeplessnerdsleeplessnerd

20.8k1 gold badge24 silver badges29 bronze badges

14

In Python 3.5 or later, using pathlib you can copy text file contents into a variable and close the file in one line:

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

and then you can use str.replace to remove the newlines:

txt = txt.replace('\n', '')

answered Mar 29, 2018 at 20:26

How do i read a text file as string in python?

3

You can read from a file in one line:

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

Please note that this does not close the file explicitly.

CPython will close the file when it exits as part of the garbage collection.

But other python implementations won't. To write portable code, it is better to use with or close the file explicitly. Short is not always better. See https://stackoverflow.com/a/7396043/362951

mit

10.8k10 gold badges47 silver badges74 bronze badges

answered Dec 3, 2015 at 2:52

Nafis AhmadNafis Ahmad

2,6112 gold badges25 silver badges13 bronze badges

5

To join all lines into a string and remove new lines, I normally use :

with open('t.txt') as f:
  s = " ".join([l.rstrip("\n") for l in f]) 

answered Mar 21, 2015 at 3:10

How do i read a text file as string in python?

Pedro LobitoPedro Lobito

88.5k29 gold badges238 silver badges256 bronze badges

5

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

join() will join a list of strings, and rstrip() with no arguments will trim whitespace, including newlines, from the end of strings.

answered Dec 3, 2011 at 16:55

MagerValpMagerValp

2,7921 gold badge23 silver badges27 bronze badges

0

This can be done using the read() method :

text_as_string = open('Your_Text_File.txt', 'r').read()

Or as the default mode itself is 'r' (read) so simply use,

text_as_string = open('Your_Text_File.txt').read()

answered Nov 16, 2018 at 7:16

LoochieLoochie

2,23610 silver badges18 bronze badges

1

I'm surprised nobody mentioned splitlines() yet.

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

Variable data is now a list that looks like this when printed:

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

Note there are no newlines (\n).

At that point, it sounds like you want to print back the lines to console, which you can achieve with a for loop:

for line in data:
    print(line)

gelonida

4,9622 gold badges19 silver badges38 bronze badges

answered Feb 8, 2018 at 11:59

How do i read a text file as string in python?

JulianJulian

3,6224 gold badges19 silver badges27 bronze badges

1

I have fiddled around with this for a while and have prefer to use use read in combination with rstrip. Without rstrip("\n"), Python adds a newline to the end of the string, which in most cases is not very useful.

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

gelonida

4,9622 gold badges19 silver badges38 bronze badges

answered Apr 28, 2017 at 7:46

How do i read a text file as string in python?

whirlwinwhirlwin

15.5k17 gold badges67 silver badges97 bronze badges

It's hard to tell exactly what you're after, but something like this should get you started:

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

answered Dec 3, 2011 at 16:51

Chris EberleChris Eberle

47.2k12 gold badges80 silver badges118 bronze badges

3

Try the following code:

with open("my_text_file.txt", "r") as file:
    data = file.read().replace("\n", "")

answered Mar 31 at 13:40

How do i read a text file as string in python?

My CarMy Car

1,2003 gold badges9 silver badges30 bronze badges

you can compress this into one into two lines of code!!!

content = open('filepath','r').read().replace('\n',' ')
print(content)

if your file reads:

hello how are you?
who are you?
blank blank

python output

hello how are you? who are you? blank blank

answered Jul 30, 2018 at 20:34

1

You can also strip each line and concatenate into a final string.

myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
    data = data + line.strip();

This would also work out just fine.

How do i read a text file as string in python?

OrionMD

3191 gold badge7 silver badges13 bronze badges

answered Apr 26, 2015 at 5:57

2

This is a one line, copy-pasteable solution that also closes the file object:

_ = open('data.txt', 'r'); data = _.read(); _.close()

answered Aug 23, 2018 at 15:33

1

f = open('data.txt','r')
string = ""
while 1:
    line = f.readline()
    if not line:break
    string += line

f.close()


print(string)

gelonida

4,9622 gold badges19 silver badges38 bronze badges

answered Dec 3, 2011 at 16:49

How do i read a text file as string in python?

hungneoxhungneox

8,91310 gold badges48 silver badges64 bronze badges

3

python3: Google "list comprehension" if the square bracket syntax is new to you.

 with open('data.txt') as f:
     lines = [ line.strip('\n') for line in list(f) ]

answered Nov 16, 2016 at 13:04

gerardwgerardw

5,36142 silver badges38 bronze badges

3

Oneliner:

  • List: "".join([line.rstrip('\n') for line in open('file.txt')])

  • Generator: "".join((line.rstrip('\n') for line in open('file.txt')))

List is faster than generator but heavier on memory. Generators are slower than lists and is lighter for memory like iterating over lines. In case of "".join(), I think both should work well. .join() function should be removed to get list or generator respectively.

  • Note: close() / closing of file descriptor probably not needed

answered Aug 28, 2021 at 8:38

How do i read a text file as string in python?

MachinexaMachinexa

4681 gold badge6 silver badges15 bronze badges

Have you tried this?

x = "yourfilename.txt"
y = open(x, 'r').read()

print(y)

How do i read a text file as string in python?

Ali

1,3572 gold badges12 silver badges18 bronze badges

answered Nov 16, 2017 at 17:41

How do i read a text file as string in python?

1

To remove line breaks using Python you can use replace function of a string.

This example removes all 3 types of line breaks:

my_string = open('lala.json').read()
print(my_string)

my_string = my_string.replace("\r","").replace("\n","")
print(my_string)

Example file is:

{
  "lala": "lulu",
  "foo": "bar"
}

You can try it using this replay scenario:

https://repl.it/repls/AnnualJointHardware

How do i read a text file as string in python?

answered Oct 31, 2019 at 19:12

How do i read a text file as string in python?

Sma MaSma Ma

2,8651 gold badge28 silver badges37 bronze badges

I don't feel that anyone addressed the [ ] part of your question. When you read each line into your variable, because there were multiple lines before you replaced the \n with '' you ended up creating a list. If you have a variable of x and print it out just by

x

or print(x)

or str(x)

You will see the entire list with the brackets. If you call each element of the (array of sorts)

x[0] then it omits the brackets. If you use the str() function you will see just the data and not the '' either. str(x[0])

answered Mar 6, 2015 at 20:16

How do i read a text file as string in python?

Maybe you could try this? I use this in my programs.

Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
    data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()

answered Jul 3, 2019 at 20:33

Regular expression works too:

import re
with open("depression.txt") as f:
     l = re.split(' ', re.sub('\n',' ', f.read()))[:-1]

print (l)

['I', 'feel', 'empty', 'and', 'dead', 'inside']

answered Aug 13, 2019 at 13:08

AlexAlex

9444 gold badges14 silver badges28 bronze badges

0

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

answered Jul 27, 2021 at 9:32

How do i read a text file as string in python?

0

This works: Change your file to:

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

Then:

file = open("file.txt")
line = file.read()
words = line.split()

This creates a list named words that equals:

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

That got rid of the "\n". To answer the part about the brackets getting in your way, just do this:

for word in words: # Assuming words is the list above
    print word # Prints each word in file on a different line

Or:

print words[0] + ",", words[1] # Note that the "+" symbol indicates no spaces
#The comma not in parentheses indicates a space

This returns:

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN, GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

answered May 20, 2015 at 18:34

PyGuyPyGuy

433 bronze badges

1

with open(player_name, 'r') as myfile:
 data=myfile.readline()
 list=data.split(" ")
 word=list[0]

This code will help you to read the first line and then using the list and split option you can convert the first line word separated by space to be stored in a list.

Than you can easily access any word, or even store it in a string.

You can also do the same thing with using a for loop.

answered Jan 23, 2016 at 10:26

file = open("myfile.txt", "r")
lines = file.readlines()
str = ''                                     #string declaration

for i in range(len(lines)):
    str += lines[i].rstrip('\n') + ' '

print str

answered Jun 13, 2016 at 8:53

akDakD

9971 gold badge9 silver badges15 bronze badges

0

line_lst = Path("to/the/file.txt").read_text().splitlines()

Is the best way to get all the lines of a file, the '\n' are already stripped by the splitlines() (which smartly recognize win/mac/unix lines types).

But if nonetheless you want to strip each lines:

line_lst = [line.strip() for line in txt = Path("to/the/file.txt").read_text().splitlines()]

strip() was just a useful exemple, but you can process your line as you please.

At the end, you just want concatenated text ?

txt = ''.join(Path("to/the/file.txt").read_text().splitlines())

answered Mar 26 at 19:31

yotayota

1,83021 silver badges34 bronze badges

Try the following:

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

    sentences = data.split('\\n')
    for sentence in sentences:
        print(sentence)

Caution: It does not remove the \n. It is just for viewing the text as if there were no \n

answered Dec 6, 2019 at 6:25

Palak JainPalak Jain

6146 silver badges18 bronze badges

0

How do I read a text file into a string in Python?

Use file. read() to read an entire file Call file. read() to read an open text file into a string. Use str. replace() to replace all newline characters with spaces.

How do you convert text to string in Python?

To convert an integer to string in Python, use the str() function. This function takes any data type and converts it into a string, including integers. Use the syntax print(str(INT)) to return the int as a str , or string.

How do you read the contents of a text file in Python?

There are 6 access modes in python..
Read Only ('r') : Open text file for reading. ... .
Read and Write ('r+'): Open the file for reading and writing. ... .
Write Only ('w') : Open the file for writing. ... .
Write and Read ('w+') : Open the file for reading and writing. ... .
Append Only ('a'): Open the file for writing..

How do I read a .TXT file in pandas?

We can read data from a text file using read_table() in pandas. This function reads a general delimited file to a DataFrame object. This function is essentially the same as the read_csv() function but with the delimiter = '\t', instead of a comma by default.