Python 检查数字是否在范围内并输出到文件
我正在尝试制作一个程序,自动为我排序 我有一个不同的机器人与点列表。看起来有点像这样: BOT#1 |积分余额=39 |积分收入=2000 我希望python打开我的文件(列表),遍历列表并根据它们的值输出机器人 所以我看起来像这样Python 检查数字是否在范围内并输出到文件,python,Python,我正在尝试制作一个程序,自动为我排序 我有一个不同的机器人与点列表。看起来有点像这样: BOT#1 |积分余额=39 |积分收入=2000 我希望python打开我的文件(列表),遍历列表并根据它们的值输出机器人 所以我看起来像这样 BOT#1 | POINTS BALANCE = 100 | POINTS EARNED = 2000 BOT#2 | POINTS BALANCE = 200 | POINTS EARNED = 2023 BOT#3 | POINTS BALANCE = 300
BOT#1 | POINTS BALANCE = 100 | POINTS EARNED = 2000
BOT#2 | POINTS BALANCE = 200 | POINTS EARNED = 2023
BOT#3 | POINTS BALANCE = 300 | POINTS EARNED = 9300
BOT#4 | POINTS BALANCE = 400 | POINTS EARNED = 1030
对于每100个点,python将生成一个新文件,并将所有具有这些点的机器人放在其中(整行)
所以
BOT#1 |积分余额=100 |积分收入=2000
将进入一个名为“100”的文件,python将把整行写入新文件
如果这让人困惑,我很抱歉,我真的不知道从哪里开始,我很难解释
tldr:
我希望python打开我的文件,浏览列表并为
积分平衡=价值
然后每100次,它生成一个新文件,并将原始文件中的整行内容写入其中。您可以尝试以下方法:
t = ['BOT#1 | POINTS BALANCE = 100 | POINTS EARNED = 2000', 'BOT#2 | POINTS BALANCE = 200 | POINTS EARNED = 2023', 'BOT#3 | POINTS BALANCE = 300 | POINTS EARNED = 9300', 'BOT#4 | POINTS BALANCE = 400 | POINTS EARNED = 1030']
t = [line.replace("BOT#", "").replace("POINTS BALANCE =", "").replace("POINTS EARNED =","").split("|") for line in t]
t = np.array(t).astype(int)
points_balance = np.unique(t[:,1])
by_point = {}
for p in points_balance:
rows = t[t[:,1]==p]
rows = ["BOT#{} | POINTS BALANCE = {} | POINTS EARNED = {}".format(*row) for row in rows]
by_point[p] = rows
输出将是平衡点所在行的字典,您可以将它们中的每一行写入一个文件
{100: ['BOT#1 | POINTS BALANCE = 100 | POINTS EARNED = 2000'], 200: ['BOT#2 | POINTS BALANCE = 200 | POINTS EARNED = 2023'], 300: ['BOT#3 | POINTS BALANCE = 300 | POINTS EARNED = 9300'], 400: ['BOT#4 | POINTS BALANCE = 400 | POINTS EARNED = 1030']}
一如既往,发布一些代码!