Как сделать пакет слов, используя метод split из текстового файла в python - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь выучить TFIDF. Но я не могу взять слова из файла.

код:

docA = open("/home/user/Desktop/da/doca","r")
print(docA.read())
bowA = docA.split(" ")

ошибка:

AttributeError                            
Traceback (most recent call last)
<ipython-input-32-06e07f9dd975> in <module>
----> 1 bowA = docA.split(" ")

AttributeError: '_io.TextIOWrapper' object has no attribute 'split'`
Can anyone help me solve this?

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Я предполагаю, что вы имели в виду это:

docA = open("/home/user/Desktop/da/doca","r")
# print(docA.read())
bowA = docA.read().split(" ") # or just split() will do
docA.close()

Когда вы вызываете read() курсор чтения читает весь файл, оставляя курсор чтения в конце. Поэтому повторный вызов read() вернет пустую строку. Следовательно, если вы хотите распечатать содержимое, вы можете назначить содержимое переменной, распечатать его и использовать по мере того, как вы будете sh:

docA = open("/home/user/Desktop/da/doca","r")
data = docA.read()
print(data)
bowA = data.split()
docA.close()

или просто

with open("/home/user/Desktop/da/doca","r") as docA:
    data = docA.read()
print(data)
bowA = data.split()
0 голосов
/ 27 февраля 2020

Вы хотите использовать возвращенную строку вместо дескриптора файла:

docA = open("/home/user/Desktop/da/doca","r")
document_string = docA.read()
bowA = document_string.split()

Вы можете просто позвонить split, по умолчанию она разделяется на пробел

...