如何在Python中将字母数字代码写入文件?

时间:2015-06-18 03:58:39

标签: python pickle

我正在尝试创建随机数字,并将它们存储在一个文件中,然后我进行了一些谷歌搜索并遇到了pickle函数。我完全按照教程的方式使用它,现在我需要知道如何存储我在那里创建的所有代码?这是我的代码

import string
import pickle
from random import randint

data = list(string.ascii_lowercase)
[data.append(n) for n in range(0, 10)]
x = [str(data[randint(0, len(data)-1)]) for n in range(0, 21)]
y = ''.join(x)

print (y)

inUse = []
inUse.append(y)

pickle.dump(inUse, open("data.pkl", "wb"))

inUse = pickle.load(open("data.pkl", "rb"))

2 个答案:

答案 0 :(得分:0)

在下面一行 -

y = ''.join(x)

让我们说x是一个随机字符列表,如 - '['a','x','c','j']

执行上述行后,您将获得y = 'axcj'

您可以使用pickle来序列化列表对象本身,因此您甚至不需要yinUse列表。

代码看起来像 -

import string
import pickle
from random import randint

data = list(string.ascii_lowercase)
[data.append(n) for n in range(0, 10)]
x = [str(data[randint(0, len(data)-1)]) for n in range(0, 21)]

pickle.dump(x, open("data.pkl", "ab"))

x = pickle.load(open("data.pkl", "rb"))

请注意ab文件模式,它用于附加到文件,而不是覆盖它。

答案 1 :(得分:0)

您生成x的方式过于复杂

import string
import random
data = string.ascii_lowercase + string.digits
x = ''.join(random.choice(data) for n in range(20))

现在,您只需print x即可获得此类文件

with open("data.txt", "a")) as fout:
    print(x, file=fout)

如果您希望将N代码附加到文件

with open("data.txt", "a")) as fout:
    for i in range(N):
        x = ''.join(random.choice(data) for n in range(20))
        print(x, file=fout)