Chr*_*phe 1 python string list
我有一个数字列表,我想创建一个文本文件(使用python),其名称按特定顺序列出(对于使用mencoder创建的电影).特别是在这里,图形名称包括月份(4月,8月......).我想要Januray的第一个,然后是2月,依此类推.
我知道我可以用一种丑陋的方式做到这一点,但我对一个既优雅(= pythonic?)又最终更通用的解决方案感兴趣.
我的文件,在自然秩序:
cld_for_April_EISopt_1000.png
cld_for_August_EISopt_1000.png
cld_for_December_EISopt_1000.png
cld_for_February_EISopt_1000.png
cld_for_January_EISopt_1000.png
cld_for_July_EISopt_1000.png
cld_for_June_EISopt_1000.png
cld_for_March_EISopt_1000.png
cld_for_May_EISopt_1000.png
cld_for_November_EISopt_1000.png
cld_for_October_EISopt_1000.png
cld_for_September_EISopt_1000.png
我想有这里面的文本文件:
cld_for_January_EISopt_1000.png
cld_for_February_EISopt_1000.png
cld_for_March_EISopt_1000.png
cld_for_April_EISopt_1000.png
cld_for_May_EISopt_1000.png
cld_for_June_EISopt_1000.png
cld_for_July_EISopt_1000.png
cld_for_August_EISopt_1000.png
cld_for_September_EISopt_1000.png
cld_for_October_EISopt_1000.png
cld_for_November_EISopt_1000.png
cld_for_December_EISopt_1000.png
或者更一般地说,如果我有一个列表或数组或字典如:
{'pattern1':rank_in_output_list_1,...,'pattern12':rank_in_output_list_12}
我该如何使用它来命令我的文件名?
到目前为止,我玩过:os.listdir,os.path.isfile,numpyp.ma.array,.compressed()或.compress(); 但我没那么成功.
非常感谢.
克里斯托夫.
作为排序的关键,拆分_并映射第三个元素.
sorted(filenames, key=lambda x: monthdict[x.split('_')[2]])
Run Code Online (Sandbox Code Playgroud)