我有一系列格式如下的文本文件
Transaction Summary
Joe buys from Mindy 5 apples for 6$
Mark buys from Alex 3 apples for 5$
...
END其中可以有数量可变的苹果事务--一个文本文件可能有2个,其他文本文件可能有6个--但所有文件的格式都是相同的。我想在本质上存储事务摘要和结束之间的行。
我首先咨询了this method,它允许我打印这些行,但我不知道如何存储这些行。
取而代之的是,我决定只读取整个文本文件,然后存储,然后裁剪所需的数据
with open(filename) as f:
data = f.readlines()
f.close这样我就可以拼接这个字符串列表了。我遇到的问题是,虽然我知道从哪里开始拼接(1行索引),但由于每个文本文件都有可变数量的事务,我不知道如何选择其中包含"END“字符串的特定索引。
任何意见都将不胜感激--谢谢!
发布于 2018-10-24 11:30:02
data.txt
Transaction Summary
Joe buys from Mindy 5 apples for 6$
Mark buys from Alex 3 apples for 5$
END代码
with open('data.txt') as file:
lines = file.readlines()
transaction = []
for line in lines[1:-1]:
tokens = line.split(' ')
transaction.append((
tokens[0],
tokens[3],
int(tokens[4]),
int(tokens[7].rstrip('$\n')) ))
print(transaction)结果
[('Joe', 'Mindy', 5, 6), ('Mark', 'Alex', 3, 5)]发布于 2018-10-25 15:30:43
您可以尝试使用regex。
import re
string = """
Transaction Summary
Joe buys from Mindy 5 apples for 6$
Mark buys from Alex 3 apples for 5$
END
"""
print(re.findall(r"(\w+) buys from (\w+) (\d+) apples for (\d+)",string))
# [('Joe', 'Mindy', '5', '6'), ('Mark', 'Alex', '3', '5')]https://stackoverflow.com/questions/52960582
复制相似问题