根据python中的文件名对文件进行排序

安东尼·詹姆斯

使用其整数文件名对文件进行排序。

  1. 我需要使用filename中整数根据文件名升序Python中的文件进行排序在排序功能python3排序文件名作为1,11,12,13,......,19,2,21,22等.....
  2. 有一些文件名例外,例如,有些文件名为1a.htm,3a.htm,4a.htm。我想忽略这些文件,并且不想将这些文件包括在我的文件的最终排序列表中。我要排序的文件和文件夹

正常排序问题:


    import bs4
    from bs4 import BeautifulSoup
    import os,glob

    root='data_sample_gnc/'
    for path, subdirs, files in os.walk(root):
        for file in sorted(files):
            if(file.endswith('.htm')):
                print(file)

输出1.htm 10.htm 11.htm 12.htm 13.htm 14.htm 15.htm 16.htm 17.htm 18.htm 19.htm 1a.htm 2.htm 20.htm 21.htm 22.htm 23 .htm 24.htm 25.htm 26.htm 27.htm 28.htm 29.htm 3.htm 30.htm

异常问题:


    import bs4
    from bs4 import BeautifulSoup
    import os,glob

    root='data_sample_gnc/'
    for path, subdirs, files in os.walk(root):
        sorted_files=sorted(files, key=lambda x: int(x.split('.')[0]))
        for file in sorted_files:
            print(file)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-45-2881098be594> in <module>
      5 root='data_sample_gnc/'
      6 for path, subdirs, files in os.walk(root):
----> 7     sorted_files=sorted(files, key=lambda x: int(x.split('.')[0]))
      8     for file in sorted_files:
      9         print(file)

<ipython-input-45-2881098be594> in <lambda>(x)
      5 root='data_sample_gnc/'
      6 for path, subdirs, files in os.walk(root):
----> 7     sorted_files=sorted(files, key=lambda x: int(x.split('.')[0]))
      8     for file in sorted_files:
      9         print(file)

ValueError: invalid literal for int() with base 10: '1a'

预先感谢您的帮助。:) xD

达里尔

过滤非数字然后排序。

示例(使用文件字符串)

files = "1a.htm, 1b.htm, 1.htm 10.htm 11.htm 12.htm 13.htm 14.htm 15.htm 16.htm 17.htm 18.htm 19.htm 1a.htm 2.htm 20.htm 21.htm 22.htm 23.htm 24.htm 25.htm 26.htm 27.htm 28.htm 29.htm 3.htm 30.htm"

sorted_files = sorted(filter(lambda x: x.split('.')[0].isnumeric(), files.split()), key= lambda y: int(y.split('.')[0]))

print(sorted_files)

在上述files.split()中,将字符串转换为文件列表(例如)

输出量

['1.htm', '2.htm', '3.htm', '10.htm', '11.htm', '12.htm', '13.htm', '14.htm', '15.htm', '16.h.htm'tm', '17.htm', '18.htm', '19.htm', '20.htm', '21.htm', '22.htm', '23.htm', '24.htm', '25.htm'7.htm, '26.htm', '27.htm', '28.htm', '29.htm', '30.htm']

使用过帐示例(文件列表)

过帐从以下位置获取文件列表:

for path, subdirs, files in os.walk(root):

文件已经输入,因此我们不会执行拆分以获取列表。

 sorted_files = sorted(filter(lambda x: x.split('.')[0].isnumeric(), files), key= lambda y: int(y.split('.')[0]))

# Above changed from files.split() to just files

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据其在Android中的创建日期对文件进行排序

如何使用python按特定顺序对文件名进行排序

根据文件名中间的版本号对文件进行排序

如何在ruby中对文件名进行排序?

需要帮助根据文件名中的日期戳对文件列表进行排序

使用Python对文件名进行版本控制

Python:根据CSV文件中的条目对文件进行排序的程序

根据文件大小以及打印文件名和大小对文件(包括子目录中的文件)进行排序

如何以文件名中包含的整数的升序对文件进行排序

C ++在目录中对文件名进行排序

根据Python中的创建日期对文件列表进行排序

Bash:根据文件名对文件进行排序

在PHP中对文件名进行排序,例如abc 1.1,abc 1.1.1,abc 1.0

按数字值对文件名进行排序

如何对文件名中的空格进行排序并连接文件?

根据文件扩展名对文件进行排序

命令行按文件名或目录名对文件或目录进行排序

如何按文件名中的日期对文件排序?

Bash-根据多个字段对文件名进行排序

Python:根据文件名上指定的日期从文件夹中读取文件并进行排序

根据文件名的相似性对文件排序

Python,对文件进行排序

根据文件名与文件夹Python匹配对文件进行排序

根据扩展名对文件进行排序并将它们移动到它们的目录中

python中的正则表达式根据匹配的文件名的开头和结尾对文件进行分组

对文件名进行 SQL 修剪

BASH:根据文件名进行文件排序

如何根据Java中多个路径的文件名对文件进行分组

根据文件名中嵌入的时间戳对文件进行排序、分组和处理