我想创建一个模块来检查一个数字是否为素数,并列出它之前的所有素数。
如果必须在每次创建素数时生成素数列表,模块中的函数将花费一些时间。
如何打开与程序所在文件夹相同的.txt文件,然后让它从中访问数据并根据该文件创建列表?该函数完成后,.txt文件将保存在列表中。我还需要一些关于如何在给定位置实际保存文件的指导。
任何建议或提示都会很棒。谢谢!
答案 0 :(得分:4)
我会挑选一个set
对象,你可以这样做:
import cPickle as pickle
primes_set = set([2,3,5])
pickle.dump(primes_set, open('primes_set.pkl', 'wb'))
my_primes = pickle.load(open('primes_set.pkl', 'rb')) # to load the object
创建pickle文件后,您可以像这样使用它:
def get_primes(my_nums):
'''
Return only prime numbers from inputted list.
'''
my_primes = pickle.load(open('primes_set.pkl', 'rb'))
return [num for num in my_nums if num in my_primes]
答案 1 :(得分:3)
在python中查看io http://docs.python.org/2/tutorial/inputoutput.html
因为你似乎正在进行数字运算,我会使用pytables(hdf5二进制文件)来保存负载和更新数组
答案 2 :(得分:1)
答案 3 :(得分:1)
要打开文件,只需使用
即可filereader = open("example.txt")
然后变量filereader将包含文件的数据。
allprimes = []
for line in filereader:
allprimes.append(int(line)) #assuming one number is stored per line
allprimes现在将包含存储在文件中的所有数字。