2015-06-18 139 views
0

我想创建随机数字,并将它们存储在一个文件中,我做了一些Google搜索,并遇到了pickle函数。我完全按照教程的用法来使用它,现在我需要知道如何存储我在那里创建的所有代码?这里是我的代码如何在Python中将文字数字代码写入文件?

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")) 
+0

你期待什么 输出? –

+0

当我构建它时,它会创建一个随机的20位数字。我想将我创建的每20位数字存储到文件中。 –

+0

@LayneTrout然后你需要使用追加模式'open(“filename”,“a”)' –

回答

0

你产生x的方式过于错综复杂现在

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

,你可以简单地printx像这样

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) 
+0

谢谢!这正是我需要的。如果我不清楚什么,我很抱歉。 –

+0

如果我想将data.txt文件放到一个名为data的文件夹中,我会只说'(“Data/data.txt”)'? –

+0

@LayneTrout,只要该文件夹存在并且具有正确的权限 –

0

在下面的线 -

y = ''.join(x) 

比方说x是随机的字符,如列表 - `[ '一', 'X', 'C',“Ĵ “]

上述行执行后,你会得到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文件模式,它是附加到文件,而不是覆盖它。

相关问题