1. 程式人生 > 實用技巧 >python讀寫csv檔案(csv)

python讀寫csv檔案(csv)

[CSV (Comma Separated Values)]即逗號分隔值(也稱字元分隔值,因為分隔符可以不是逗號),是一種常用的文字格式,用以儲存表格資料,包括數字或者字元。

1. 利用檔案型別直接迭代訪問(含有中文)

with open('testdata.csv', encoding="GB2312") as f:
  for line in f:
    row = line.split(',')

2. 利用csv.reader()迭代訪問

with open('testdata.csv', encoding="GB2312") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

3.跳過首行標題行

with open('testdata.csv', encoding="GB2312") as f:
    reader = csv.reader(f)
    #跳過首行
    header = next(reader)
    for row in reader:
        print(row)

4. 跳過符合條件的行

with open('testdata.csv', encoding="GB2312") as f:
    reader = csv.reader(f)
    for row in reader:
        #利用正則匹配跳過第一列為'file'
        if re.match(r"^file$",rows[0]):
            pass
        else:
            print(row)

5. 跳過第n行

with open('testdata.csv', encoding="GB2312") as f:
    reader = csv.reader(f)
    for i, row in enumerate(reader):
        if i == 5:
            pass
        else:
            print(row)

6列印行號

with open('testdata.csv', encoding="GB2312") as f:
    reader = csv.reader(f)
    for i,rows in enumerate(reader):
        print("ROW #{0} {1}".format(i,rows))

7操作csv記錄list,可排序,可轉化字串

with open('testdata.csv', encoding="GB2312") as f:
    reader = csv.reader(f)
    header = next(reader)
    for rows in reader:
        rows.sort()
        print("|".join(rows))

8利用csv.reader讀取鍵值對csv, 存入dict

with open("instance.csv") as csvFile:
    mDict = {}
    reader = csv.DictReader(csvFile)
    for row in reader:
        #跳過標題行
        if reader.line_num == 1:
            continue
        #生成字典
        mDict[row[0]]=row[1]
    print(mDict)

8利用csv.Dictreader讀取鍵值對csv, 存入dict

with open("instance.csv") as csvFile:
    result = {}
    reader = csv.DictReader(csvFile)
    for row in reader:
        result[row["name"]]=row["score"]
    print(result)