Python 如何从同一个numpy文件中的同一文件夹中按顺序排列文件列表的名称?

Python 如何从同一个numpy文件中的同一文件夹中按顺序排列文件列表的名称?,python,numpy,Python,Numpy,在这个问题中,我询问了如何将同一文件夹中的所有文件名放在一个numpy文件中 import os path_For_Numpy_Files = 'C:\\Users\\user\\My_Test_Traces\\1000_Traces_npy' with open('C:\\Users\\user\\My_Test_Traces\\Traces.list_npy', 'w') as fp: fp.write('\n'.join(os.listdir(path_For_Numpy_File

在这个问题中,我询问了如何将同一文件夹中的所有文件名放在一个numpy文件中

import os
path_For_Numpy_Files = 'C:\\Users\\user\\My_Test_Traces\\1000_Traces_npy'
with open('C:\\Users\\user\\My_Test_Traces\\Traces.list_npy', 'w') as fp:
    fp.write('\n'.join(os.listdir(path_For_Numpy_Files)))
我的文件夹中有10000个numpy文件,因此结果是:

   Tracenumber=01_Pltx1
   Tracenumber=02_Pltx2
   Tracenumber=03_Pltx3
   Tracenumber=04_Pltx4
   Tracenumber=05_Pltx5
   Tracenumber=06_Pltx6
   Tracenumber=07_Pltx7
   Tracenumber=08_Pltx8
   Tracenumber=09_Pltx9
   Tracenumber=10_Pltx10
   Tracenumber=1000_Pltx1000
   Tracenumber=100_Pltx100
   Tracenumber=101_Pltx101
顺序对分析我的结果非常重要,请在创建列表时如何保持顺序?我的意思是我需要这样的结果:

   Tracenumber=01_Pltx1
   Tracenumber=02_Pltx2
   Tracenumber=03_Pltx3
   Tracenumber=04_Pltx4
   Tracenumber=05_Pltx5
   Tracenumber=06_Pltx6
   Tracenumber=07_Pltx7
   Tracenumber=08_Pltx8
   Tracenumber=09_Pltx9
   Tracenumber=10_Pltx10
   Tracenumber=11_Pltx11
   Tracenumber=12_Pltx12
   Tracenumber=13_Pltx13
我尝试使用以下方法对其进行迭代:

import os
path_For_Numpy_Files = 'C:\\Users\\user\\My_Test_Traces\\1000_Traces_npy'
with open('C:\\Users\\user\\My_Test_Traces\\Traces.list_npy', 'w') as fp:
    list_files=os.listdir(path_For_Numpy_Files)
    list_files_In_Order=sorted(list_files, key=lambda x:(int(re.sub('D:\tt','',x)),x))
    fp.write('\n'.join(sorted(os.listdir(list_files_In_Order))))
它给了我这个错误:

invalid literal for int() with base 10: ' Tracenumber=01_Pltx1'

请问如何解决这个问题

我编辑了解决方案,它现在可以工作了: 您将根据时间对文件进行排序

import os
path_For_Numpy_Files = 'C:\\Users\\user\\My_Test_Traces\\1000_Traces_npy'
path_List_File='C:\\Users\\user\\My_Test_Traces\\Traces.list_npy'
with open(path_List_File, 'w') as fp:
    os.chdir(path_For_Numpy_Files)
    list_files=os.listdir(os.getcwd())
    fp.write('\n'.join(sorted((list_files),key=os.path.getmtime)))

可能是@Bemmu的重复,谢谢,但情况不同。如果您首先对os.listdir结果进行数字排序,这不是您的解决方案吗?如果不是,您可以尝试另一件事,即制作一个自定义排序函数,从文件名中提取最后的数字部分,并基于此进行排序。@Bemmu,你能给我解释一下你的想法吗?它给了我同样的结果。文件名不按顺序排列。