Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中向文件写入字母数字代码?_Python_Pickle - Fatal编程技术网

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

如何在Python中向文件写入字母数字代码?,python,pickle,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(da

我试图创建随机数字并将它们存储在一个文件中,我在谷歌上搜索了一下,发现了
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"))
在下面一行-

y = ''.join(x)
假设
x
是一个随机字符列表,如-`['a',x',c',j']

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

您可以使用
pickle
对列表对象本身进行序列化,这样您甚至不需要
y
inUse
列表

代码看起来像-

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
文件模式,它用于附加到文件,而不是覆盖文件。

您生成
x
的方法过于复杂

import string
import random
data = string.ascii_lowercase + string.digits
x = ''.join(random.choice(data) for n in range(20))
现在,您只需
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)

您希望输出是什么?当我构建它时,它会创建一个随机的20位数字。我想将我创建的每个20位数字存储到文件中。@LayneTrout然后你需要使用附加模式
open(“filename”,“a”)
我将
“wb”
更改为
“a”
,现在我得到一个错误:
类型错误:必须是str,而不是bytes
?@LayneTrout你要找的是随机模块。Pickle用于序列化,在使用之前必须取消Pickle。谢谢!这正是我所需要的。如果我不清楚或者什么的话,我很抱歉。如果我想把data.txt文件放到一个名为data的文件夹中,我会说
(“data/data.txt”)
?@LayneTrout,只要该文件夹存在并且具有正确的权限就可以了