You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现随机拼接Cewl词表中3个单词的方法求助

新手友好的解决方案:Python随机拼接词表单词生成新词表

Hey there! 刚学Python一个半小时就能动手做密码审计相关的脚本,已经超棒啦😉 你的代码现在能输出三个随机单词,但没法拼接的问题很容易解决,我一步步给你讲清楚:

问题分析

你当前的代码每次都重新打开文件并随机选一个单词,然后分开打印,所以三个单词是独立输出的,没有合并成一个字符串。咱们先优化文件读取,再实现拼接,最后还能生成完整的新词表。

分步解决方案

1. 先把词表一次性读入列表(更高效)

重复打开文件没必要,咱们先把test.txt里的所有单词存到一个列表里,之后操作都用这个列表:

import random

# 用with语句安全打开文件,自动关闭,新手也不容易出错
with open("test.txt", "r") as f:
    # read()读取全部内容,split()按空格/换行分割成单词列表
    word_list = f.read().split()

2. 随机选取3个单词(两种情况可选)

  • 允许单词重复:比如同一个单词可以出现多次,用random.choice()三次:
    word1 = random.choice(word_list)
    word2 = random.choice(word_list)
    word3 = random.choice(word_list)
    
  • 不允许单词重复:三个单词都不一样,用random.sample()直接选3个:
    # 一次性获取3个不重复的单词,直接解包到变量里
    word1, word2, word3 = random.sample(word_list, 3)
    

3. 拼接单词(无分隔符)

有两种简单的方式把三个单词拼起来:

  • 用+直接连接字符串:
    combined_password = word1 + word2 + word3
    
  • 用''.join()(更Pythonic的写法,适合多个字符串拼接):
    # 把三个单词放到列表里,用空字符串连接
    combined_password = ''.join([word1, word2, word3])
    

4. 生成新词表(可选,批量生成组合)

如果要生成多个拼接后的密码并存到新文件里,比如生成100个,这样写:

# 打开新文件准备写入,"w"表示覆盖写入(如果文件不存在会新建)
with open("new_password_list.txt", "w") as output_file:
    # 循环100次,生成100个组合
    for _ in range(100):
        # 这里用不重复的例子,你可以换成允许重复的写法
        selected_words = random.sample(word_list, 3)
        combined = ''.join(selected_words)
        # 每个组合写一行,方便后续工具使用
        output_file.write(combined + "\n")

完整示例代码(生成单个拼接结果)

import random

# 读取词表到列表
with open("test.txt", "r") as f:
    word_list = f.read().split()

# 选3个不重复的单词(换成choice就是允许重复)
word1, word2, word3 = random.sample(word_list, 3)

# 拼接并打印
combined = word1 + word2 + word3
print("生成的拼接密码:", combined)

慢慢摸索,你已经在正确的路上啦!

内容的提问来源于stack exchange,提问作者ReefNerd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:45:39