使用python中的for循环从目录中读取和排序文件

时间:2018-06-30 17:48:00

标签: python file sorting concatenation

嗨,大家好, 我的目录中有13个.npy文件。其中一些以相同的名称开头。 示例:

  

B59_180322_153253.npy

     

B59_180322_173253.npy

     

B60_180324_153253.npy

     

B60_180324_173253.npy

     

B61_180324_173253.npy

     

B62_180324_173253.npy   ....   ....

我需要阅读它们并在for循环中连接以相同名称(B59)开头的那些,然后将其分配给字典数据。但是我找不到自动的方法。 你有什么建议吗? >

  

data = {'B59':[],               'B62':[],

        'B65':[],

        'B67':[],

        'B68':[],

        'B79':[],

        'B80':[]}

当没有多个以相同名称开头的文件时,该代码可以很好地工作。任何人将不胜感激,在此先感谢。 最好

  

对于glob.glob(“ *。npy”)中的文件:

   experiment_id=file.split('_')[0]

   print(experiment_id)

   var = np.load(file)

  data[experiment_id]=var

1 个答案:

答案 0 :(得分:0)

非常感谢您。

遍历您的txt文件

使用以下代码,我可以使用具有文件名的键来创建字典。所以我自己没有写。 但是,当有2个以相同名称开头的npy文件时,词典仍然仅获得第一个npy文件。

这个没有用,所以我将其删除, 数据[experiment_id] .append(var)

direc = os.getcwd() # Get current working directory
text = '.npy' # Select your file delimiter

file_dict = {} # Create an empty dict

# Select only files with the ext extension
txt_files = [i for i in os.listdir(direc) if os.path.splitext(i)[1] == ext]

for f in txt_files:
   with open(os.path.join(direc,f)) as file_object:
   experiment_id=f.split('_')[0]
   print(experiment_id)
   file_dict[experiment_id]=np.load(f)

您认为可以在此处添加什么?