我不知道如何從文本文件中讀取隨機字符,想學習如何。這就是我開始使用 python 時發生的事情!我知道我以后會在學校做這樣的事情,所以我正在練習。正如您將看到的那樣,閱讀一行是不夠的 - 我愿意接受提示,只是一個直接的答案,因為我意識到我的代碼非常草率。帶有此代碼的 Raspberry Pi 運行 Raspbian lite,并額外安裝了一些位(gui,空閑),并運行 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.readrandom_character = random.choice(contents)for i in range(amnt): password = '' for c in range(length): password += random_character print(password)
1 回答

牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
如果文件不是很大,選擇隨機字符的簡單方法是先將其讀入字符串,然后從字符串中選擇一個隨機字符:
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)
添加回答
舉報
0/150
提交
取消