如何根据这些文本文件中的行数将某些文本文件传输到不同的目录?

时间:2014-04-01 21:52:29

标签: python

所以我有一个包含大量.txt文件的文件夹。我知道每个文件中的行数,我将它们放在一个数组中。我想要做的只是将具有一定行数的.txt文件传输到单独的文件夹中,或者删除与相同行数不匹配的其余文件。 描述此文件夹中每个.txt文件中有多少行的数组如下所示:

[1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 7, 3, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 143, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 2, 1, 3, 3, 1, 2, 1, 1, 14, 2, 1, 1, 80, 3, 3, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 3, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 80, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21, 1, 3, 2, 3, 1, 6, 1, 1, 1, 2, 5, 1, 1, 2, 1, 2, 2, 1, 1, 3, 1, 3, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 3, 4, 2, 4, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 1, 2, 2, 143, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 140, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 5, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 191, 2, 1, 1, 1, 1, 2, 2, 1, 1, 143, 1, 1, 21, 2, 1, 1, 1, 3, 173, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 3, 2, 1, 3, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 3, 5, 2, 3, 2, 1, 1, 1, 10, 1, 1, 2, 1, 2, 1, 4, 2, 1, 1, 3, 2, 1, 1, 187, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 191, 1, 1, 191, 2, 2, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 5, 1, 1, 1, 1, 2, 2, 1, 1, 2, 111, 1, 1, 1, 1, 5, 2, 175, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 191, 1, 1, 1, 1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 3, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 3, 1, 1, 2, 2, 1, 1, 1, 1, 3, 6, 1, 1, 3, 2, 1, 3, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 9, 16, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 2, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 190, 2, 1, 1, 1, 1, 4]

我想要做的是将所有包含191行的.txt文件分开并将它们放在一个单独的文件夹中,或者删除在同一文件夹中没有191行的其余文件。请帮忙!!!!谢谢!

我通过执行以下操作得到了这个数组顺序:

>>> import os
>>> dir = '/'
>>> os.chdir(dir)
>>> ch1 = []
>>> for file in glob.glob('*'):
        f = open(file, "rU")
        f1 = f.readlines()
        new = len(f1[0].split(']['))
        ch1.append(new)

>>> ch1

这就是我的数组,它告诉我目录中每个文本文件中有多少行。

1 个答案:

答案 0 :(得分:0)

DESTPATH = "dest/i/nation/path/goes/here"
TARGET_LINES = 191

for filename in os.listdir():
    count = 0
    with open(filename) as file:
        for line in file:
            count += 1
    if count == TARGET_LINES:
        shutil.move(filename,DESTPATH)