python讀寫csv檔案(csv)
阿新 • • 發佈:2020-10-11
[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)