。在專案中prefix
為mapeventmonster,surfix
為csv。因此以questid = 99070333為例,對應的csv檔名為:
mapeventmonster_990703330.csv
roomid
rate
enemygroupid
action***
messageno_0
messageno_1
messageno_2
messageno_3
messageno_4
worldid
areaid
dungeonid
99070169020
900801691-1
-1-1
-1-1
9907
1
...
dungeon/quest_type_3/area_907/mapeventmonster_990701690.csv
dungeon/quest_type_3/area_999/mapeventmonster_999999990.csv
......
#!/usr/bin/python
# coding:utf8
import os
import csv
# 遞迴目錄及其子目錄下的檔案
defdirlist
(path, allfile):
filelist = os.listdir(path)
for filename in filelist:
filepath = os.path.join(path, filename)
if os.path.isdir(filepath):
dirlist(filepath, allfile)
else:
return filepath
# 從檔案的全路徑中擷取檔名(一般處於全路徑的最後乙個'/'的後面)
defcutfilename
(fullpath):
return fullpath.split('/')[-1]
# 列印list所有元素
defprintlist
(mylist):
for item in mylist:
print item
# 判斷檔名是否滿足指定字尾
defissurfix
(path, surfix):
filename = cutfilename(path)
return path.split('.')[-1] == surfix
# 判斷檔名是否滿足指定字首
defisprefix
(path, prefix):
filename = cutfilename(path)
return filename.find(prefix) == 0
# 建立key-value的字典結構儲存搜尋結果
# key: stageid
# value: 對應csv的全路徑
defsetdict
(allfile, prefix, surfix):
mydict = dict()
for item in allfile:
if issurfix(item, surfix) and isprefix(item, prefix):
filename = cutfilename(item)
beg = filename.find(prefix)
end = filename.find(surfix)
stageid = filename[beg + len(prefix): end-1]
mydict[stageid] = item
return mydict
# 獲得對應csv檔案的某一列的所有值
defgetcsvvalue
(filepath, colnum, ret):
# print filepath
reader = csv.reader(file(filepath, 'rb'))
for line in reader:
if reader.line_num == 1:
# 跳過第一行屬性名
continue
# main函式
if __name__ == '__main__':
#以下各變數需要根據實際情況補全,
# 否則無法執行
path = # "需要掃瞄的目錄路徑"
prefix = # "例如:mapeventmonster_"
surfix = # "例如:csv"
inputfile = # 例如:open('輸入檔名(含路徑)', 'rb')
allfile =
dirlist(path, allfile)
mydict = setdict(allfile, prefix, surfix)
ret = list()
for line in inputfile:
key = line.strip("\n") + "0"
getcsvvalue(mydict[key], 3, ret)
ret = list(set(ret)) # 去重
ret.sort() # 排序
printlist(ret) # 列印
inputfile.close()
python對 csv檔案的簡單計數處理
1.每種伏邪,對應方劑所出現的次數 部分資料如下 2.每種伏邪,對應中草藥出現的次數 話不多說直接 資料檔案github瀏覽 初學菜鳥乙個,輕噴 問題一 import numpy as np from collections import counter data np.loadtxt open d...
Python處理csv檔案
在csv檔案中,以,作為分隔符,分隔兩個單元格。像這樣a,c表示單元格a和單元格c之間有個空白的單元格。依此類推。不是每個逗號都表示單元格之間的分界。所以即使csv是純文字檔案,也堅持使用專門的模組進行處理。python內建了csv模組。先看看乙個簡單的例子。import csv filename ...
python 對多個csv檔案分別進行處理
import glob import time import csv csvx list glob.glob csv 開啟資料夾下全部的csv檔案 print 總共發現 s個csv檔案 len csvx list time.sleep 2 print 正在處理.for i in csvx list ...