根据输入生成N量输出。蟒蛇

时间:2013-04-24 18:28:35

标签: python function operating-system output

import os,random

def randomizer(input,sample_size,output='NM_controls.xls'):

#Input file with query

    query=open(input,'r').read().split('\n')
    dir,file=os.path.split(input)    
    temp = os.path.join(dir,output)    
    out_file=open(temp,'w')

    name_list = 833 #### got this from input

    output_amount = (name_list)/(sample_size) #### = 3.6 but I want the floor value so its fine

我正在写一个函数,输出的数量取决于输入。所以在我的函数中,它接收一个文件然后扫描它并分区名称和其他数据。

下一部分互相排斥并从此列表中随机抽样。我希望它生成一定数量的文件,但这取决于列表中有多少名称。

无论如何

使用'os'模块创建一些我没有在变量中指定的列表?

在这种情况下,它将是3个输出['output_1.txt','output_2.txt','output_3.txt']

* *抱歉混乱!所以我正在使用操作系统模块,因为我想在输入文件所在的同一目录中创建不存在的文件。这是我知道怎么做的唯一方法

2 个答案:

答案 0 :(得分:0)

如果要写入output_amount文件(由the out_file变量指示),则以下内容应该有效。

for n in range(output_amount):
    outfile = open('%s_%d.txt'%(temp, n), 'w')
    # Now write the data to output file n

如果您想创建包含n项目的列表,请参阅abarnert的回答。

答案 1 :(得分:0)

如果你想“创建一定数量的列表”(直到运行时才能知道这个数字),这很容易:

my_lists = []
for _ in range(certain_number):
    my_lists.append(make_another_list())

或者,更简单:

my_lists = [make_another_list() for _ in range(certain_number)]

或者,如果您有一个动态数量的输入列表,并且想要为每个输入列表创建一个输出列表,您甚至不需要计算数字:

my_lists = [transform_a_list(input_list) for input_list in input_lists]

显然,这里没有特定于列表的内容。正如你所知道的那样,除了listmake_another_list函数名称中出现的transform_a_list这个词之外,我没有利用你所做的事情这个事实。创建一定数量的列表。您可以以相同的方式创建一定数量的字符串,数字,数组,线程,文件,数据库等。