首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从python中的文本文件中提取特定数据

如何从python中的文本文件中提取特定数据
EN

Stack Overflow用户
提问于 2020-05-19 07:31:10
回答 3查看 281关注 0票数 0

我正在尝试从文本文件中提取特定的数据,以便在另一个函数中使用它。我已经查过了,发现了一些东西,但它不起作用,尽管它似乎应该有效。我做错了什么吗?还是有更好的方法?我基本上是在尝试提取文本文件中的第一列数据“距离”,当然不需要公里。

这是文本文件:

代码语言:javascript
复制
Distances              Times                    Dates               Total distance & time
00 km                  00:00:00 h               0000-00-00            00 km ; 00:00:00 h
28 km                  01:30:21 h               2020-3-2              28 km ; 01:30:21 h
50 km                  02:12:18 h               2020-4-8              78 km ; 

这是代码:

代码语言:javascript
复制
all_distances = []

with open("Bike rides.txt", "r") as f:
   lines = f.readlines()

   for l in lines[1:]:
       all_distances.append(l.split()[0])

print(all_distances)

我得到的错误是:

代码语言:javascript
复制
IndexError: list index out of range
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-19 07:48:14

试试这个:

代码语言:javascript
复制
#!/usr/bin/env python3
all_distances = []

for l in open ( "rides.txt" ).readlines () [ 1: ]:
    l = l.split ( " " ) [ 0 ]
    all_distances.append ( l )


print(all_distances)
票数 0
EN

Stack Overflow用户

发布于 2020-05-19 07:46:41

考虑到您有空格分隔符,可以使用string.split()方法分隔列。下面是它的应用实例。

代码语言:javascript
复制
column = 0  # First column
with open("data.txt") as file:
  data = file.readlines()
columns = list(map(lambda x: x.strip().split()[column], data))
票数 0
EN

Stack Overflow用户

发布于 2020-05-19 08:44:20

我得到的错误是:"IndexError:列表索引超出范围“--这表明空行存在问题,因此.split()给出了空列表,从而忽略了这样的行:

代码语言:javascript
复制
all_distances.append(l.split()[0])

做:

代码语言:javascript
复制
splitted = l.split()
if splitted:
    all_distances.append(splitted[0])

说明:在python中,空列表考虑的是false-y和非空thus y,因此如果list至少有一个元素,if块中的代码将执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61885513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档