根据扩展名列表在文件树中查找文件

埃里克

我正在开发一个小型 python 3 实用程序,以根据文件扩展名列表构建一个 zip 文件。我有一个扩展的文本文件,我正在将一个文件夹传递到脚本中:

working_folder = sys.argv[1]
zip_name = sys.argv[2]

#Open the extension file
extensions = []
with open('CxExt.txt') as fp:
    lines = fp.readlines()
    for line in lines:
        extensions.append(line)

#Now get the files in the directory. If they have the right exttension add them to the list.
files = os.listdir(working_folder)
files_to_zip = []

for ext in extensions:
    results = glob.glob(working_folder + '**/' + ext, recursive=True)
    print(str(len(results)) + " results for " + working_folder + '**/*' + ext)
    #search = "*"+ext
    #results = [y for x in os.walk(working_folder) for y in glob(os.path.join(x[0], search))]
    #results = list(Path(".").rglob(search))
    for result in results:
        files_to_zip.append(result)


if len(files_to_zip) == 0:
    print("No Files Found")
    sys.exit()
for f in files:
    print("Checking: " + f)
    filename, file_extension = os.path.splitext(f)
    print(file_extension)
    if file_extension in extensions:
        print(f)
        files_to_zip.append(file)

ZipFile = zipfile.ZipFile(zip_name, "w" )

for z in files_to_zip:
    ZipFile.write(os.path.basename(z), compress_type=zipfile.ZIP_DEFLATED)

我已经尝试使用 glob、os.walk 和 Path.rglob,但仍然无法获得文件列表。一定有一些明显的东西我遗漏了。我构建了一个包含一些目录、py 文件和一些 zip 文件的测试目录。它为所有文件类型返回 0。我在看什么?

技术人

这是我的第一个答案,所以请不要指望它是完美的。

我注意到您正在使用 file.readlines()。根据此处的 Python 文档,file.readlines() 返回行列表,包括末尾的换行符如果您的文本文件的扩展名由换行符分隔,则可以尝试使用 file.read().split("\n") 代替。除此之外,您的代码看起来还不错。如果此修复程序不起作用,请告诉我。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash命令根据文件名列表查找文件

来自分类Dev

查找文件夹中不是特定类型/扩展名的所有文件?

来自分类Dev

如何从Python中文件名列表中的文件名中删除扩展名?

来自分类Dev

仅通过扩展名查找文件?

来自分类Dev

按日期和扩展名查找文件

来自分类Dev

查找文件而不考虑其扩展名

来自分类Dev

如何从完整的文件名列表中删除文件扩展名?

来自分类Dev

创建有效的文件扩展名列表

来自分类Dev

Windows 命令获取文件扩展名列表

来自分类Dev

返回文件/文件名列表,以查找文件名模式中断的位置

来自分类Dev

如何在特定目录中按文件扩展名查找文件并使用Power Shell进行遍历?

来自分类Dev

根据规格查找文件

来自分类Dev

BASH查找文件名,但跳过文件名列表

来自分类Dev

如何获得每个子目录中与文件扩展名列表匹配的第一个文件?

来自分类Dev

如何在Linux中根据文件权限查找文件

来自分类Dev

根据文件名中包含的日期查找文件

来自分类Dev

如何在TFS中按名称或名称或扩展名的一部分查找文件

来自分类Dev

从文件列表中查找文件并执行删除

来自分类Dev

获取目录中所有文件的不带扩展名的文件名列表

来自分类Dev

如何使用node.js查找文件扩展名更改?

来自分类Dev

查找文件,使用“ uuidgen”将其重命名并添加扩展名

来自分类Dev

如何通过使用扩展名进行搜索来查找文件名

来自分类Dev

根据文件扩展名更改列表样式类型的图像?

来自分类Dev

在makefile中查找文件

来自分类Dev

在Ubuntu中查找文件

来自分类Dev

在目录列表中查找文件的首次出现

来自分类Dev

Grails插件创建:“找不到未监视路径的文件扩展名列表”

来自分类Dev

如何根据时间戳查找文件

来自分类Dev

如何在方括号中的项目文件树中查找文件

Related 相关文章

  1. 1

    Bash命令根据文件名列表查找文件

  2. 2

    查找文件夹中不是特定类型/扩展名的所有文件?

  3. 3

    如何从Python中文件名列表中的文件名中删除扩展名?

  4. 4

    仅通过扩展名查找文件?

  5. 5

    按日期和扩展名查找文件

  6. 6

    查找文件而不考虑其扩展名

  7. 7

    如何从完整的文件名列表中删除文件扩展名?

  8. 8

    创建有效的文件扩展名列表

  9. 9

    Windows 命令获取文件扩展名列表

  10. 10

    返回文件/文件名列表,以查找文件名模式中断的位置

  11. 11

    如何在特定目录中按文件扩展名查找文件并使用Power Shell进行遍历?

  12. 12

    根据规格查找文件

  13. 13

    BASH查找文件名,但跳过文件名列表

  14. 14

    如何获得每个子目录中与文件扩展名列表匹配的第一个文件?

  15. 15

    如何在Linux中根据文件权限查找文件

  16. 16

    根据文件名中包含的日期查找文件

  17. 17

    如何在TFS中按名称或名称或扩展名的一部分查找文件

  18. 18

    从文件列表中查找文件并执行删除

  19. 19

    获取目录中所有文件的不带扩展名的文件名列表

  20. 20

    如何使用node.js查找文件扩展名更改?

  21. 21

    查找文件,使用“ uuidgen”将其重命名并添加扩展名

  22. 22

    如何通过使用扩展名进行搜索来查找文件名

  23. 23

    根据文件扩展名更改列表样式类型的图像?

  24. 24

    在makefile中查找文件

  25. 25

    在Ubuntu中查找文件

  26. 26

    在目录列表中查找文件的首次出现

  27. 27

    Grails插件创建:“找不到未监视路径的文件扩展名列表”

  28. 28

    如何根据时间戳查找文件

  29. 29

    如何在方括号中的项目文件树中查找文件

热门标签

归档