循环浏览目录中的文件,计算每个目录中的行数,如果少于500行则复制到新文件名

克里斯瓦尔

python新手。我有一个包含> 1000个文本文件的目录。每个文件中包含1到1000行之间的任意位置。我想编写一个简单的python脚本,该脚本可打开并读取目录中的每个文件,计算行数,并且仅在小于或等于500行时才复制该文件。我希望副本保留原始文件名,但是在扩展名前添加_c(即,仅当foo.txt中包含<= 500行时,foo.txt才会复制到foo_c.txt中)。搜寻它似乎需要使用glob和shutil,但似乎无法正确命名我的输出:

import os
import sys
import glob
import shutil

list_of_files = glob.glob('./path/to/directory/*.txt') 

for fileName in list_of_files:
       with open(fileName) as i:
               count = sum(1 for _ in i)
               if count <= 500:
                       shutil.copyfile(fileName, fileName + "_c")
                       print("copying " + fileName)
               else:
                       pass

它在测试数据集上运行,但是将其命名为输出* .txt_c而不是* _c.txt。所以问题是fileName变量包含扩展名。有什么办法可以在扩展名之前插入_c修改?谢谢。

鲁济姆

使用os.path.splitext该扩展名与文件名的其余部分分离:

import os
import sys
import glob
import shutil

list_of_files = glob.glob('./path/to/directory/*.txt') 

for fileName in list_of_files:
    with open(fileName) as i:
        count = sum(1 for _ in i)
        if count <= 500:
            root, ext = os.path.splitext(fileName)
            shutil.copyfile(fileName, root + "_c" + ext)
            print("copying " + fileName)

"_c".join如果您感到很生疏,可以使用

import os
import sys
import glob
import shutil

list_of_files = glob.glob('./path/to/directory/*.txt') 

for fileName in list_of_files:
    with open(fileName) as i:
        count = sum(1 for _ in i)
        if count <= 500:
            splitName = os.path.splitext(fileName)
            shutil.copyfile(fileName, "_c".join(splitName))
            print("copying " + fileName)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何编码我的程序来为目录中的每个新文件创建新文件名?

来自分类Dev

将文件名复制到新文件

来自分类Dev

如何将多个文件中的行复制到一个新文件中并保留文件名?

来自分类Dev

我可以浏览目录的子目录并将特定扩展名的文件复制到新文件夹吗?

来自分类Dev

将文件从多个目录(如果文件名出现在列表中)复制到一个目录中

来自分类Dev

Python将文件复制到新目录,如果文件名已存在,则重命名

来自分类Dev

将相同文件名从不同文件夹复制到新文件夹时附加文件名的循环

来自分类Dev

为什么不将项目中的新文件复制到Xcode中的每个目标?

来自分类Dev

如何使用Java将文件中的特定行复制到新文件

来自分类Dev

如何获取每个目录中的最新文件

来自分类Dev

循环浏览多个csv文件,仅将某些列复制到新文件

来自分类Dev

如何监视unix目录,如果目录中有任何新文件,它将被复制到另一个目录

来自分类Dev

通过SSH Bash脚本将文件复制到具有附加文件名的同一目录中

来自分类Dev

Python-仅将新文件复制到另一个目录

来自分类Dev

将“仅已更改/新文件”复制到不同的目录?

来自分类Dev

rsync:将更新/新文件复制到不同目录

来自分类Dev

根据目录中的最新文件名替换文本文件中的参数

来自分类Dev

目录中的Python最新文件

来自分类Dev

Linux根据文件名模式将文件批量复制到目录中

来自分类Dev

循环浏览目录,但跳过最新文件

来自分类Dev

将文件从一个文件夹复制到另一个文件夹,并使用旧文件名和时间戳将文件重命名到新文件夹中

来自分类Dev

比较两个目录中的每个文件,如果与对应目录不同,则将其复制到另一个目录

来自分类Dev

如何将文件的所有重复行复制到 Python 中的新文件中?

来自分类Dev

如果不存在,如何将更新的文件复制到新文件夹并创建目录作为源?

来自分类Dev

将特定文件复制到新文件夹,同时保留原始子目录树

来自分类Dev

根据文件名将文件复制到某些目录

来自分类Dev

将文件从一个目录复制到另一个目录并附加带有时间戳的新文件,而不是在 Java 中覆盖

来自分类Dev

如何循环目录中的文件,并根据每个文件名执行某些任务?

来自分类Dev

将带有通配符的文件列表复制到新文件夹中

Related 相关文章

  1. 1

    如何编码我的程序来为目录中的每个新文件创建新文件名?

  2. 2

    将文件名复制到新文件

  3. 3

    如何将多个文件中的行复制到一个新文件中并保留文件名?

  4. 4

    我可以浏览目录的子目录并将特定扩展名的文件复制到新文件夹吗?

  5. 5

    将文件从多个目录(如果文件名出现在列表中)复制到一个目录中

  6. 6

    Python将文件复制到新目录,如果文件名已存在,则重命名

  7. 7

    将相同文件名从不同文件夹复制到新文件夹时附加文件名的循环

  8. 8

    为什么不将项目中的新文件复制到Xcode中的每个目标?

  9. 9

    如何使用Java将文件中的特定行复制到新文件

  10. 10

    如何获取每个目录中的最新文件

  11. 11

    循环浏览多个csv文件,仅将某些列复制到新文件

  12. 12

    如何监视unix目录,如果目录中有任何新文件,它将被复制到另一个目录

  13. 13

    通过SSH Bash脚本将文件复制到具有附加文件名的同一目录中

  14. 14

    Python-仅将新文件复制到另一个目录

  15. 15

    将“仅已更改/新文件”复制到不同的目录?

  16. 16

    rsync:将更新/新文件复制到不同目录

  17. 17

    根据目录中的最新文件名替换文本文件中的参数

  18. 18

    目录中的Python最新文件

  19. 19

    Linux根据文件名模式将文件批量复制到目录中

  20. 20

    循环浏览目录,但跳过最新文件

  21. 21

    将文件从一个文件夹复制到另一个文件夹,并使用旧文件名和时间戳将文件重命名到新文件夹中

  22. 22

    比较两个目录中的每个文件,如果与对应目录不同,则将其复制到另一个目录

  23. 23

    如何将文件的所有重复行复制到 Python 中的新文件中?

  24. 24

    如果不存在,如何将更新的文件复制到新文件夹并创建目录作为源?

  25. 25

    将特定文件复制到新文件夹,同时保留原始子目录树

  26. 26

    根据文件名将文件复制到某些目录

  27. 27

    将文件从一个目录复制到另一个目录并附加带有时间戳的新文件,而不是在 Java 中覆盖

  28. 28

    如何循环目录中的文件,并根据每个文件名执行某些任务?

  29. 29

    将带有通配符的文件列表复制到新文件夹中

热门标签

归档