Я новичок в Python (в том, что я изучил его через курс CodeAcademy) и мог бы помочь с определением этого.
У меня есть файл 'TestingDeleteLines.txt', который содержит около 300 строк текста. Прямо сейчас я пытаюсь заставить его напечатать мне 10 случайных строк из этого файла, а затем удалить эти строки.
Так что, если мой файл имеет 10 строк:
Carrot
Banana
Strawberry
Canteloupe
Blueberry
Snacks
Apple
Raspberry
Papaya
Watermelon
Мне нужно, чтобы он случайно выбрал эти строки, сказал мне, что они случайно выбрали чернику, морковь, арбуз и банан, а затем удалил эти строки.
Проблема в том, что когда Python читает файл, он читает этот файл, и как только он доходит до конца, он не возвращается и не удаляет строки. В настоящее время я думал, что могу написать строки в список, затем снова открыть файл, сопоставить список с текстовым файлом и, если он найдет совпадение, удалить строки.
Моя текущая проблема состоит из двух частей:
- Это дублирование случайных элементов. Если он выбирает линию, мне нужно, чтобы она не выбиралась снова. Однако использование
random.sample
, похоже, не работает, так как мне нужно, чтобы эти строки выделялись, когда я позже использую каждую строку для добавления в URL. -
Я не чувствую, что моя логика (написать в array-> найти совпадения в тексте file-> удалить) - самая идеальная логика. Есть ли лучший способ написать это?
import webbrowser import random """url= 'http://www.google.com' webbrowser.open_new_tab(url+myline)""" Eventually, I need a base URL + my 10 random lines opening in each new tab def ShowMeTheRandoms(): x=1 DeleteList= [] lines=open('TestingDeleteLines.txt').read().splitlines() for x in range(0,10): myline=random.choice(lines) print(myline) """debugging, remove later""" DeleteList.append(myline) x=x+1 print DeleteList """debugging, remove later""" ShowMeTheRandoms()