如何在python中对以u开头的文件进行排序

如何在python中对以u开头的文件进行排序,python,Python,我有一个目录中的文件 文件名很奇怪,有些是以_开头的,而有些是以字母开头的 _weight.txt color.txt _height.txt 我正在寻找一种用python按字母顺序排序的方法。我知道如何按字母顺序排序,但不知道以特殊字符开头的文件,例如ux 有人能帮忙吗 根据回复,以下是我的代码: toolpath = os.path.dirname(os.path.abspath(__file__)) directory = os.listdir(toolpath

我有一个目录中的文件

文件名很奇怪,有些是以_开头的,而有些是以字母开头的

    _weight.txt
     color.txt
    _height.txt
我正在寻找一种用python按字母顺序排序的方法。我知道如何按字母顺序排序,但不知道以特殊字符开头的文件,例如ux

有人能帮忙吗

根据回复,以下是我的代码:

toolpath = os.path.dirname(os.path.abspath(__file__))
directory = os.listdir(toolpath)
for files in directory:
    if files.endswith(".html")
       sorted(files, key=lambda x:x.lstrip("_").lower())
       htmlfile.write('<a href='+files+'>'+files+'</a><br>\n') 
在一个我必须对txt文件进行排序的地方,它起了作用。在上面的代码中,它仍然没有按字母顺序打印。 我还有一个问题,文件名是例如color.html,因此我的代码将文件名color.html写入html。
如何只在html页面中写入颜色而不是在color.html中写入颜色

如果您想忽略uu,可以将键中的u拖动到sorted/.sort以删除任何前导下划线:

words = ["_weight.txt","color.txt","_height.txt"]

print(sorted(words, key=lambda x: x.lstrip("_")))
['color.txt', '_height.txt', '_weight.txt']
不确定您正在排序的是什么,因为命名奇怪的文件实际上是一个字符串,但如果您想在目录中找到所有html文件并进行排序,则可以使用glob对glob返回的列表进行排序:

from glob import glob
toolpath = os.path.dirname(os.path.abspath(__file__))
directory = os.listdir(os.path.join(toolpath,"*.html"))
directory.sort( key=lambda x: x.lstrip("_")))
你可以把钥匙放进去


您使用的是什么类型的排序算法?例如气泡、快速排序、基数等?您可能需要决定如何对这些项目进行排序,然后在排序算法中实现一个规则。非常感谢。我也有一些以大写字母开头的文件名,比如permission.txt等。我尝试了你的代码,但它没有排序。只需添加.lower x.lstrip_u2;.lowertanks很多。它在一个地方起作用。而在其他地方,它不起作用。我已经用我的代码更新了帖子。你能告诉我哪里错了吗?你知道排序会创建一个新的列表吗?如果需要就地排序,请使用.sort,files.sort key=lambda x:x.lstrip\u,这会引发属性错误。”str'对象没有属性'sort'
>>> sorted(filelist, key=lambda x: x[1:] if x.startswith('_') else x)