在python中将100个文件分配给100个文件夹

时间:2018-02-24 14:35:30

标签: python split path

我有一个大数据txt文件,在python中包含10 ^ 6个单列数据。

我需要读取输入数据文件并将其溢出到100个输入文件。并创建目录并将每个数据集发送到相应的目录。 (文件夹中的每个文件)

我知道如何将数据文件拆分为100个文件,我知道如何制作文件夹。

但我的问题是如何为每个要写入该目录的数据集寻址创建的新文件夹。换句话说,我有一个循环,拆分大数据文件,在每个循环中同时创建目录,我应该如何为我创建的数据集解决创建的文件。我把我的代码放在这里,建议我是否有更好的方法写它。

import os

def createfolder(directory):
    try : 
        if not os.path.exists(directory):
            os.makedirs(directory)
    except OSError:
        print('Error: creating directory.' + directory)
    return

def splitfiles():
    input = open('data.txt','r').read().split('\n')
    i=1
    splitlength = int(len(input)/100)
    for lines in range(0,len(input),splitlength):
        print(i)
        outputdata= input[lines:lines+splitlength]
        createfolder('./Splitted files/')
        output = open('data'+str(i)+ '.txt', 'w')
        output.write('\n'.join(outputdata))
        output.close()
        i+=1

    print("Completed!")

    return
if __name__ == "__main__":
    splitfiles()

1 个答案:

答案 0 :(得分:0)

如果你想要100个文件夹和每个包含该文件的文件夹,为什么不像创建文件那样在名称中创建带有i的文件夹?

import os

def createfolder(directory):
    try : 
        if not os.path.exists(directory):
            os.makedirs(directory)
    except OSError:
        print('Error: creating directory.' + directory)
    return

def splitfiles():
    input = open('data.txt','r').read().split('\n')
    i=1
    splitlength = int(len(input)/100)
    for lines in range(0,len(input),splitlength):
        print(i)
        outputdata= input[lines:lines+splitlength]
        createfolder(os.path.join('./Splitted files',str(i)))
        output = open(os.path.join('./Splitted files',str(i),'data'+str(i)+ '.txt'), 'w')
        output.write('\n'.join(outputdata))
        output.close()
        i+=1

    print("Completed!")

    return
if __name__ == "__main__":
    splitfiles()