随机字母生成器不工作

时间:2014-03-31 00:28:02

标签: python python-3.x random

我无法弄清楚如何编写一个脚本,基本上将一堆随机字母保存到不同行上的.txt。我现在拥有的是:

import random
f = open("test.txt", "w") #clears current test.txt file
f.close()
f = open("test.txt", "a")
b = 0
def randomstring():
    global c
    valid_letters='abcdefghijklmnopqrstuvwxyz'
    c = ''.join(random.choice(valid_letters))


while b < 10000:
    randomstring()
    f.write(c + "/n")
    b = b + 1

f.close

这是什么输出

  

Q / NE / NY / NT / NB /纳克/ NF /没有/ NU / NI / NR / NN / NH / NU / NR / NE / NX / NW / NR / NT / NS / NW / NK / NZ /没有/ NB / NK / NH / NX / NJ / NW / NU /没有/ NL / NV /纳米/ NI / NH / ND / NH /纳克/ NK / NP / ND / NA /没有/ NX / NN / NG / NB / NP / NH / NB / NX / NJ / NJ / NE / NR / NB / NU / NR / NH / NJ / NF / NW / NS / NL / NP / NC / NE / NH / NP / NU / NC / NW / ND / NT / NT / NA / NK / NP / NC /纳米/ NT / NT / NB / NW / NF)/(NF)/(NF / NA / NI / N

我希望它输出的是

  

q

     

ë

     

ý

     

等。谢谢

2 个答案:

答案 0 :(得分:4)

你正在错误地逃避它。转义如下:\n而非/n 转义是通过反斜杠而不是正斜杠完成的。

如下:

while b < 10000:
    randomstring()
    f.write(c + "\n")
    b = b + 1
f.close

q
e
y
t

此外,由于每次写入文件时都要清除文件,为什么不将其打开为'w'并写入文件。这有效地覆盖了文件,因此它会清除它并写入文件。

答案 1 :(得分:-1)

这是一个清理版本:

# Assumes Python 3.x;
#  for Python 2.x, range should be replaced with xrange
from random import choice
from string import ascii_lowercase

OUTPUT = "test.txt"
NUM_WORDS = 10000
WORD_LENGTH = 1

def random_word(length, alphabet=ascii_lowercase):
    return ''.join(choice(alphabet) for i in range(length))

def main():
    with open(OUTPUT, "w") as outf:
        for i in range(NUM_WORDS):
            word = random_word(WORD_LENGTH)
            outf.write(word + "\n")

if __name__=="__main__":
    main()