2015-06-18 100 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文件模式,它是附加到文件,而不是覆蓋它。

相關問題