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

Python 如何根据文本文件中的行数将某些文本文件传输到不同的目录?,python,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,

所以我有一个包含很多.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

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

您是在询问如何筛选列表,还是如何移动和删除文件?所有这些主题都包含在标准文档和教程(以及StackOverflow问题)中。请澄清您的问题。您是如何获得该订单的?您有与这些行计数相关的文件名列表吗?os.listdir(path)返回目录中的文件列表。找出每个都有多长,然后使用shutil.move。你能给我一个如何使用shutil.move的例子吗?@AryaIyer easy,检查一下。它非常简单,类似于
shutil.move('/home/arya/yourfiles/foo.txt','/home/arya/191onlyfiles')
。目录
/home/arya/191onlyfiles
必须已经存在。您可以通过使用从
文件
变量中获取
/home/arya/yourfiles/foo.txt
。我得到以下错误:TypeError:listdir()正好接受1个参数(给定0)@AryaIyer您使用的Python版本是什么?2.7.5版本的python@AryaIyer啊。在Python3中,它不需要参数。您可以使用
os.listdir(os.getcwd())
复制该行为。甚至可能
os.listdir(“.”
虽然我不能在atm上测试它(我的工作机器上没有Python2)
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)