我在文件夾中有一些zip文件。我有一個腳本來處理它們。即要寫入到數據庫中的數據是在不同的文件中,其結構如下:Python - 文件管理和處理多個zip文件
some_text;database;file_name
some_text2;database2;file_name2
....
什麼是處理這個文件的最好方法?另外,如果該文件中沒有匹配的zip文件名,則應該報告錯誤消息。
我當前的代碼:
filelist = glob.glob(os.path.join(rootdir, '*.zip'))
if filelist:
for file in filelist:
print "Working on file ", file
#get only file name without .zip for compare
aa = file.split(sl)
bb = aa[len(aa) -1]
cc = bb.split(".")
ime_sole = cc[0]
fle = codecs.open(rootdir + sl + 'portal_schools.txt',
'r',encoding="cp1250")
line = fle.readline()
# Read lines
for line in iter(fle):
#print line,
a,b,c = line.split(";")
if c == ime_sole:
print c
database = str(b)
#distdir = str(c)
else:
print "some text"
return
fle.close()
但這種失敗,因爲它被逐行讀取。如果在第一行沒有匹配,則代碼停止。我需要它繼續通過文件,然後,畢竟完成後,從一個新的zip文件開始。
如果提高格式化你將有得到答案的一個更好的機會。 – codeape
從else條件中刪除返回。代碼因此而停止。 – spicavigo
我很抱歉,但是您的代碼存在很多問題:您不需要「如果filelist:」,因爲您只是迭代列表,如果列表爲空,將會很好。你也應該使用os.path.splitext()來獲取文件名。您應該從文件處理循環等中讀取數據文件。 –