如何从纯文本文件中读取随机字符

时间:2019-04-09 15:11:05

标签: python python-3.x plaintext

我不知道如何从文本文件中读取随机字符,并且想学习如何。

这就是我开始弄乱python时发生的事情!我知道以后我会在学校做这样的事情,所以我很努力。正如您将看到的那样,阅读一行内容是不够的-因为我意识到我的代码很草率,所以我对技巧很开放并且只是一个直截了当的答案。带有此代码的Raspberry Pi正在运行Raspbian lite,并安装了一些额外的功能(gui,idle),并运行python 3.5.3。

我将其中一些写到文本文件中

f = open("selected.txt","w")
chars = 'abcdefghijklmnopqrstuvwxyz'
ucchars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
smbls = '`¬!"£$%^&*()-_=+{[}]:;@~#<,>.?'
nos = '1234567890'
space = ' '

赞:

usechars = input('Use lower case letters? answer y or n.')
if usechars == 'y':
    f.write(chars)
useucchars = input('Use upper case letters? answer y or n.')
if useucchars == 'y':
    f.write(ucchars)
usesmbls = input('Use symbols? answer y or n.')
if usesmbls == 'y':
    f.write(smbls)
usenos = input('Use numbers 0-9? answer y or n.')
if usenos == 'y':
    f.write(nos)
usespace = input('Use spaces? answer y or n.')
if usespace == 'y':
    f.write(space)

我想从文本文件中打印选定数量的随机字符并将其打印在shell中,但是我不知道如何从文本文件中获取随机的单个字符。如果有更好的方法(可能是这样),或者您需要更多代码,请告诉我。预先感谢。

更新 这是代码:

f.close()
with open("selected.txt","r") as f:
    contents = f.read
random_character = random.choice(contents)
for i in range(amnt):
    password = ''
    for c in range(length):
        password += random_character
    print(password)

1 个答案:

答案 0 :(得分:1)

如果文件不是很大,选择随机字符的一种简便方法是先将其读取为字符串,然后从字符串中选择一个随机字符:

import random

with open("selected.txt", "r") as f:
    contents = f.read()  # NOTE the () after read

random_character = random.choice(contents)
print("The random character I've chosen is: ", random_character)

如果您想创建一个具有随机选择的字符串,则可以使用for循环,但您必须在循环内 中选择一个新的随机字符:

with open("selected.txt","r") as f:
    contents = f.read()

password = ''
for i in range(amnt):
    random_character = random.choice(contents)
    for c in range(length):
        password += random_character
print(password)