我正在尝试读取一个文件,删除以“#”开头的行,然后将剩余的行存储在一个列表中,我将尝试将它们拆分为元组。
文件“in.dat”如下
# read from file data about one day
# format: start_time:end_time:#steps
09.30AM:09.45AM:220
11.45AM:12.23PM:300
11.45AM:10.23AM:302
2.45PM:3.23PM:202
3.45PM:3.53PM:90
5.45PM:5.53PM:80
6.45PM:7.23PM:1000
10.45PM:10.53PM:102
代码如下
# Reads file and returns a list of lines in string format
def read_data(fname):
with open("in.dat", "r") as f:
data = f.readlines()
f.close()
return data
# Takes a list of lines as input and returns a new list of lines with the
# comment lines (the ones that begin with #) removed.
def remove_comment_lines(data):
result = []
for name in data:
if len(name) <=30:
result.append(data)
print(result)
return result
删除注释行(read_data(“in.dat”))
我已经尝试了我能想到的一切。我不知道如何从午夜开始计算每个时间并找到他们的时间。但在我做到这一点之前,我必须拥有没有注释行的列表,并且不能使用“/n”字符进行分割。
这是一个如何读取文件并将数据放入列表中的示例(将步骤转换为整数):
data = []
with open("in.dat", "r") as f_in:
for line in map(str.strip, f_in):
# skip empty lines or lines beginning with #
if line == "" or line.startswith("#"):
continue
data.append(line.split(":"))
data[-1][-1] = int(data[-1][-1])
print(data)
打印:
[
["09.30AM", "09.45AM", 220],
["11.45AM", "12.23PM", 300],
["11.45AM", "10.23AM", 302],
["2.45PM", "3.23PM", 202],
["3.45PM", "3.53PM", 90],
["5.45PM", "5.53PM", 80],
["6.45PM", "7.23PM", 1000],
["10.45PM", "10.53PM", 102],
]