如何在-1000和1000 python之间创建n个整数的文件?

时间:2016-10-27 22:11:02

标签: python file

我的程序应验证n是正整数。如果不是,则应返回字符串"输入正整数。"如果n为正,则应创建一个名为given的文件,该文件包含-1000到1000之间的n个整数(随机)。我认为这是你打开文件的方式,但我一无所知,不知道下一步该做什么。

    import random
    def createFile(myFile,n):
         myFile="fileName"
         outFile=open(myFile,"w")

         if n<0:
             return "Enter a positive integer."

2 个答案:

答案 0 :(得分:3)

使用random.samplerange中提取n个值。在列表解析中包装它以将整数转换为字符串,添加换行符,并将其传递给writelines方法。

import random
def createFile(myFile,n):

     with open(myFile,"w") as outFile:
        outFile.writelines(["{}\n".format(x) for x in random.sample(range(-1000,1001),n)])

createFile("foo.txt",45)

答案 1 :(得分:0)

好的......第一件事就是使用input(在Python3中)或raw_input(在Python2中)来询问用户输入数字。我建议你试试这个,输入一些负数和一个可能的数字。您甚至可以尝试输入无法转换为int的内容,以查看发生的异常情况:

number = -1
while number < 0:
    number_string = input("Enter a possitive number. ")
    number = int(number_string)
print("Yay! Got a positive number: %s" % number)

(该片段适用于Python3,在Python2中,您应该用input替换raw_input

number变量中获得正数后,您可以使用它在文件中迭代,创建(和写入)新条目:

with open("./stack_046.txt", "w") as f:
    while number > 0:
        random_generated = random.randint(-1000, 1000)
        f.write(str(random_generated))
        f.write("\n")
        number -= 1

如果您不想使用特殊关键字with(您应该这样做,并且您调查what it does非常值得),您可以随时执行以下操作:< / p>

outFile = open("./stack_046.txt", "w")
while number > 0:
    random_generated = random.randint(-1000, 1000)
    outFile.write(str(random_generated))
    outFile.write("\n")
    number -= 1
outFile.close()