我正在尝试从文本文件中提取特定的数据,以便在另一个函数中使用它。我已经查过了,发现了一些东西,但它不起作用,尽管它似乎应该有效。我做错了什么吗?还是有更好的方法?我基本上是在尝试提取文本文件中的第一列数据“距离”,当然不需要公里。
这是文本文件:
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 ; 这是代码:
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)我得到的错误是:
IndexError: list index out of range发布于 2020-05-19 07:48:14
试试这个:
#!/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)发布于 2020-05-19 07:46:41
考虑到您有空格分隔符,可以使用string.split()方法分隔列。下面是它的应用实例。
column = 0 # First column
with open("data.txt") as file:
data = file.readlines()
columns = list(map(lambda x: x.strip().split()[column], data))发布于 2020-05-19 08:44:20
我得到的错误是:"IndexError:列表索引超出范围“--这表明空行存在问题,因此.split()给出了空列表,从而忽略了这样的行:
all_distances.append(l.split()[0])做:
splitted = l.split()
if splitted:
all_distances.append(splitted[0])说明:在python中,空列表考虑的是false-y和非空thus y,因此如果list至少有一个元素,if块中的代码将执行。
https://stackoverflow.com/questions/61885513
复制相似问题