如何在文本文件中查找短语

时间:2017-02-15 16:33:06

标签: python python-3.x

我的文字文件是:

123 Numbers 4.5
456 Words 6.7
789 Sentences 8.9

我的代码就是这样:

s = open('test.txt', 'r')
file = s.read()
numbers, words, decimals = [], [], []

我到目前为止,我正在尝试找出如何为文件中的所有数字,单词和小数创建一个列表。我听说你可以使用split方法,所以我尝试了这个:

with open('test.txt', 'r') as f:
    for line in f:
        numbers, words, decimals = f.split(","), f.split(","), f.split(",")

我这样做是假设它每次遇到空格时都会分裂,但是没有发生,我只是得到了错误:

AttributeError: '_io.TextIOWrapper' object has no attribute 'split'

任何帮助将不胜感激。如果需要对我想做的事情进行任何详细说明,请告诉我,我知道这可能措辞不佳。

6 个答案:

答案 0 :(得分:2)

首先,您发布的文本文件没有逗号分隔列,因此用逗号分隔字符串将不起作用。如果您可以相信文件的每一行在结构上都是相同的,那么您只需将代码更改为

即可
a_func(1)

答案 1 :(得分:1)

numbers, words, decimals = [], [], []
with open('test.txt', 'r') as f:
    for line in f:
        number, word, decimal = line.split() 
        numbers.append(number)
        words.append(word)
        decimals.append(decimal)

答案 2 :(得分:0)

您想将每一行拆分为字段

with open('test.txt', 'r') as f:
    for line in f:
        number, word, decimal = line.split()  # split on whitespace as indicated by your example file which does not use commas
        numbers.append(int(number))
        words.append(word)
        decimals.append(float(decimal))

如果您真的打算使用ral小数,则应使用decimal.Decimal代替float

除非您受到某种限制,否则我建议使用一些专为处理表格数据而设计的库,例如:大熊猫所有这些只是

import pandas as pd
df = pd.read_table('test.txt', delim_whitespace=True)

答案 3 :(得分:0)

它应该是line.split而不是f.split,因为您要分割行而不是文件。另外,您是用逗号分隔文件,但示例文件是用空格分隔的?如果它被空格分隔,则需要使用line.split(" ")此外,使用with open() as f您不需要事先打开文件或之后将其关闭,因为它会为您排序。此外,您将整个行拆分数组保存到每个变量并每次都覆盖它们。总代码:

numbers, words, decimals = [], [], []
with open('test.txt', 'r') as f:
    for line in f:
        numbers.append(line.split(" ")[0])
        words.append(line.split(" ")[1])
        decimals.append(line.split(" ")[2])

答案 4 :(得分:0)

如果我正确理解了您的问题,那么您应该关注的是nltk。这将使您深入了解如何根据单词或句子对文本进行标记。其余的应该很容易。

答案 5 :(得分:0)

a,b,c=[],[],[]
with open('new.txt', 'r') as f:
for line in f:
    m=line.split()
    a.append(m[0])
    b.append(m[1])
    c.append(m[2])
print a,b,c

检查这是否是您想要实现的目标。

相关问题