我的文字文件是:
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'
任何帮助将不胜感激。如果需要对我想做的事情进行任何详细说明,请告诉我,我知道这可能措辞不佳。
答案 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
检查这是否是您想要实现的目标。