python對csv檔案的處理

2021-08-18 02:42:09 字數 2801 閱讀 5079

。在專案中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 ...