【问题标题】:How to select random line in file using readlines() with a previously random generated integer?如何使用 readlines() 和先前随机生成的整数在文件中选择随机行?
【发布时间】:2019-08-08 03:25:11
【问题描述】:

我有一些用于特定目标的代码,用于加载带有代理的页面,该代理是通过随机数从列表中选择的。每次我运行它时,都会从列表中选择相同的代理,即使它每次都是不同的随机整数。

我已经让代码在一定程度上工作,随机数生成工作,调试时每次都会是一个不同的随机数。我已经检查了多次,并且 proxServRaw 变量始终是相同的 IP,无论它运行了多少次。与端口选择相同。

据我从各种教程和文档中了解到,这是我需要的正确语法,但也许我错了。我对此还很陌生,这确实是我的第一个项目。这是给我带来麻烦的障碍。

def adProxy():
random.seed()
randProx = random.randint(1,156) #this part works, different number every time
proxList = open('/home/ivan/Documents/programs/adHack/proxyIP.txt', 'r')
proxServRaw = proxList.readline(randProx)
proxServIP = proxServRaw.rstrip('\n') #this variable does not change ever
proxPortList = open('/home/ivan/Documents/programs/adHack/proxyport.txt', 'r')
proxServPortRaw = proxPortList.readline(randProx)
proxServPort = proxServPortRaw.rstrip('\n')
proxList.close()
proxPortList.close()
global proxServComp #should make global for other functions
proxServComp = f'--proxy-server=socks://{proxServIP}:{proxServPort}'
import pdb; pdb.set_trace()

调试示例:

   (Pdb) p randProx
     52
   (Pdb) p proxServIP
     '115.79.63.188'

退出并重新加载后第二次:

(Pdb) p randProx
136
(Pdb) p proxServIP
'115.79.63.188'
(Pdb)

假设因为我有一个不同的数字,它应该从列表中选择一个不同的服务器,总共大约 150 个,在我手动剔除它以确保安全之后,所有不同的服务器。

所以是的,任何帮助将不胜感激。

【问题讨论】:

    标签: python-3.x random readlines


    【解决方案1】:

    您应该使用linecache 而不是readline 从文件中读取特定行。例子是:

    import linecache
    
    data = linecache.getline('test.txt', 3)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2018-04-03
      • 2020-10-13
      • 2020-08-06
      相关资源
      最近更新 更多