2016-12-26 49 views
0

作爲我學習的一部分。在我幫助成功拆分後,在下一步中,想知道當在與下面列表中給出的月份名稱匹配的文件的名稱中找到月份名稱時,是否可以拆分文件的名稱 - -
個月= ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月', '十二月']。當單詞與數組中的單詞匹配時,將名稱拆分?

當我的文件名是這樣 1.Non IVR項交易December_16_2016_07_49_22 PM.txt 2.Denied_Calls_SMS_Sent_December_14_2016_05_33_41 PM.txt

請注意,文件的名稱不same..ie爲什麼我需要將其分割爲 非IVR條目將交易視爲一個部分,並將其作爲另一個部分。

import os 
import os.path 
import csv 
path = 'C:\\Users\\akhilpriyatam.k\\Desktop\\tes' 
text_files = [os.path.splitext(f)[0] for f in os.listdir(path)] 
for v in text_files: 
    print (v[0:9]) 
    print (v[10:]) 
os.chdir('C:\\Users\\akhilpriyatam.k\\Desktop\\tes') 
with open('file.csv', 'wb') as csvfile: 
thedatawriter = csv.writer(csvfile,delimiter=',') 
for v in text_files: 
    s = (v[0:9]) 
    t = (v[10:]) 
    thedatawriter.writerow([s,t]) 

回答

0
import re 
import calendar 
fullname = 'Non IVR Entries Transactions December_16_2016_07_49_22 PM.txt' 
months = list(calendar.month_name[1:]) 
regex = re.compile('|'.join(months)) 
iter = re.finditer(regex, fullname) 
if iter: 
    idx = [it for it in iter][0].start() 
    filename, timestamp = fullname[:idx],fullname[idx:-4] 
    print filename, timestamp 
else: 
    print "Month not found" 

假設你想要的文件名和時間戳分裂和月份字符串中只發生一次,我希望下面的代碼解決您的問題。

+0

嗨,我有不同的文件名,如果我在一個循環中運行它們,我仍然只獲得非ivr entires。有些事情是錯的,我不能弄清楚什麼! –

+0

你可以給你正在使用的csv中的一些示例行的鏈接嗎? –

+0

我找到了答案。謝謝 –