将变量指定给文本的各个部分

2024-10-03 21:36:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一行来自文本文件,如下所示:

[41.298669629999999, -81.915329330000006] 6 2011-08-28 19:02:36 Work needs to fly by ... I'm so excited to see Spy Kids 4 with then love of my life ... ARREIC

我试图使用以下代码将此行的不同部分分配给特定变量:

latitude = 0
longitude = 0
unused1 = 0
unused2 = 0
unused3 = 0
tweetWordList = []
for line in tweetFile:
    line = line.rstrip()
    longitude,latitude,unused1,unused2,unused3,tweetWordList = line.split()

我试图将tweet中的文本块放入tweetWordList,但我得到一个错误,即有太多的值需要解包。我如何划分这一行,使文字进入我创建的列表

我已经阅读了该文件,程序的其余部分到此为止工作正常


Tags: tobysolineworkfly文本文件latitude
1条回答
网友
1楼 · 发布于 2024-10-03 21:36:45

这是因为您正在拆分空格,所以所有文本也会拆分为列表项。如果格式一致,我建议对列表索引进行拆分:

>>> line = "[41.298669629999999, -81.915329330000006] 6 2011-08-28 19:02:36 Work needs to fly by ... I'm so excited to see Spy Kids 4 with then love of my life ... ARREIC"
>>> splitline = line.split()
>>> longitude = splitline[0].replace('[', '').replace(',', '')
>>> latitude = splitline[1].replace(']', '')
>>> tweetWordList = ' '.join(splitline[5:])

或者,您也可以使用正则表达式模式:

>>> import re
>>> latitude, longitude, tweetWordList = re.findall("^\[([\d.]+), ([\d\-.]+)\] [\d] [\d]{4}-[\d]{2}-[\d]{2} [\d]{2}:[\d]{2}:[\d]{2} ([A-Za-z0-9 .']+)", line)[0]

您需要使用正则表达式模式来正确匹配文本,但这就是它的要点

相关问题 更多 >