2017-05-04 10 views
1

約1000のcsvファイル名からユニット番号のリストを返そうとしています。私はそれらを読むことができますし、それらの周りからすべての迷惑を削除するPythonを取得し、私はそれを行う必要がどのようにそれをフォーマットする5番目の文字を置き換えます。私は[6726-0501]、[6826-1144]のようにすべてのユニット番号のリストを返したいと思います。私が現在取り組んでいるのは、ユニット番号を1つずつ印刷して保存しないことです。私は以前の質問を見てきましたが、リストを作成してユニット番号をリストに追加し、そのリストを変数に保存して作業するモードを得られないようです。誰もが単純にこれを修正してリストを出力し、後で使うためにリストを保存する良い方法を知っていますか?リストを出力して保存する機能を変更する

おかげで、

ロビン

file_names = ['job_1106_unit_672600501_las_PN23074.LAS.csv', 'job_1108_unit_682601144_las_PN23072.LAS.csv'] 


def change(file_names): 
    for comps in file_names: 
     comps_of_comps = list(comps) 
     unit_num = comps_of_comps[14:23] #[672600501] 
     a = (unit_num[0:4]) #[6726] 
     b = (unit_num[5:9]) #[0501] 
     unit_num = a + list('-') + b #[6,7,2,6,-,0,5,0,1] 
     unit_num = ''.join(unit_num) #6726-0501 
     print unit_num 

change(file_names) 

答えて

1

新しいリストを初期化し、それに追加し、そのリストを返すことができます。

file_names = ['job_1106_unit_672600501_las_PN23074.LAS.csv', 'job_1108_unit_682601144_las_PN23072.LAS.csv'] 
def change(file_names): 
    result = [] 
    for comps in file_names: 
     comps_of_comps = list(comps) 
     unit_num = comps_of_comps[14:23] #[672600501] 
     a = (unit_num[0:4]) #[6726] 
     b = (unit_num[5:9]) #[0501] 
     unit_num = a + list('-') + b #[6,7,2,6,-,0,5,0,1] 
     unit_num = ''.join(unit_num) #6726-0501 
     result.append(unit_num) 
    return result 

print change(file_names) 

OR

import re 

def change(file_names): 
    result = [] 
    for i in file_names: 
     s = re.match('.*unit_(.*)_las.*', i).group(1) 
     result.append(s[:len(s)/2]+"-"+s[(len(s)/2)+1:]) 
    return result 
+0

おかげのように私は、最初のオプションを使用して行って、それが完全に働きました。私はあなたの助けに感謝します。 – Robin

関連する問題