如何将文本文件读取为一个字符串?

时间:2019-06-10 14:56:55

标签: python string list text readfile

我想使用以下代码将文本文件读入一个字符串:

fname=examplefile
with open(fname,'r') as f:
    # this way of reading the file gives a list of lines.
    data_text = f.readlines()
    # I want to assert what kind of data is data_text >>>list
    print('data_text is',type(data_text))
    # create a text out of the file
    whole_text =(' '.joint(data_text))
    #doc = nlp(data_text)
    #sentences = [sent.string.strip() for sent in doc.sents]
    #print(sentences[0:10])

我收到此错误:

AttributeError: 'str' object has no attribute 'joint'

错误出现在whole_text等行中

这让我感到困惑,因为在错误之前我得到了确认:

data_text is <class 'list'>

所以data_text是一个列表,但是python看到了一个字符串。

我在做什么错了?

在回答后进行编辑: 我的代码中有一个错字: 它是JOIN而不是JOINT 就这样 也就是说,当使用.read()时,字符串还包含\ n必须以某种方式删除的项目,仅用于那些考虑readlines与read()的项目 无论如何,我希望错误是 AttributeError:“列表”对象没有属性“关节” 并不是 AttributeError:“ str”对象没有属性“ joint”

注意

阅读

How to read a file line-by-line into a list?

Python - open file - readline - list - convert to string

Concatenate item in list to strings

无济于事

3 个答案:

答案 0 :(得分:1)

您可以使用read()函数来读取文件:

data_text = f.read()

或者您可以在列表中JOIN(非联合)字符串:

whole_text = ' '.join(data_text)

答案 1 :(得分:1)

.joint不是有效的字符串方法,它是联接https://docs.python.org/3.7/library/stdtypes.html#str.join

答案 2 :(得分:0)

方法是join()

' '.join(yourlist)  # ' ' is delimiter here