从文件中随机选取20行写入a.txt,剩余10行写入b.txt?

依依雨柔
  • 233

clipboard.png
从文件中随机选取20行写入a.txt,剩余10行写入b.txt,该怎么写代码?

回复
阅读 10.5k
2 个回答

很多种实现方式:
1、
首先,从30里随机挑选10个(或20个)数:
import random
select_list = random.sample(range(30), 10)
然后遍历文件,行数在select_list,则写到a.txt 否则写到b.txt
2、
readlines()读取文本内容,得到一个list。
random.sample(list, 10) 就直接随机取了10行内容,写到a.txt
然后list减去那10行,得到的20行内容,写到b.txt

可能有很多更简单的方式。

import random

with open('input', 'r') as f:
    lines = f.readlines()

with open('a.txt', 'w') as fa, open('b.txt', 'w') as fb:
    for _ in range(20):
        fa.write(lines.pop(random.randint(0, len(lines) - 1)))
    fb.writelines(lines)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏