Technology sharing

Python-legere et scribere csv files

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Tabula contentorum

csv bibliotheca modum parametri

Legere notitia

csv.reader modum

Lima certa row vel columnae data lectio operandi

txt file readlines, modi lege

csv.DictReader modum

data initus

txt file scribe, writelines

csv.writer modum

csv.DictWriter methodo

Scribere legere-unio (mutare ac data inserta)


Cum legere et scribere csv imagini, plerumque opus est quaestiones tractandas ut semita lima, modus aperiendi, character modum translitterandi, etc. The newline='' parameter adhiberi solet cum legere et scribere csv lima ut lectio et scriptura tabellae novis rationibus systematis Fenestrae non afficiantur. Txt lima et csv lima conversionem mutuam sustinent, lectio et scriptura tabellarum ad csv imagini plene sunt applicandae.

csv bibliotheca modum parametri

modulusdefault pretiidescribere
delimiter,Indicat characteres ad valores separatos (vel agros) in tabella CSV.
skipinitialspaceFALSUS Imperat quomodo spatia delimiters sequentia interpretantur. Si vera, initialis whitespace auferetur.
lineterminatorrnIndicat ordinem notarum linea terminare.
quotechar" Indicat unica chorda quae pretii referenda erit, si speciales notae (ut delimiters) in agro occurrunt. Exempli gratia "0,0" continet ",In casu ", quotechar""" uti potes, notitias in toto "" uteris.
quotingcsv.QUOTE_NONEImperium cum quotes generantur ab auctore vel ab lectore recognitum (vide supra ad alia bene).
escapecharNullusCum citatum ad prolationem ponitur, una indoles chorda adhibita est ut delimiter evadat.
doublequoteVERUMQuotes in agris tractatio moderatur.quandoVerum Cum legeretur, duo consecutivi quotes unum interpretantur, dum scribens, singulae notae infixae in notitia ponuntur ut duo quotes. Defalta, doublequote ponitur ad Verum. Quam ob rem duo consecutiva duplici sententia ut unum legentes interpretantur. Si duplicatum ad falsum positum est, duplex consecutiva sententia in output apparebit.

Legere notitia

csv.reader modum

  1. import csv
  2. with open(file_name, 'r', encoding='utf-8-sig') as f:
  3. reader = csv.reader(f) # 创建csv阅读器对象,读取所有有效数据,返回结果为一个迭代器类对象
  4. for data in reader: # 遍历每一行的数据
  5. print(data)

modum translitterandi modum descriptam denotare potest utf-8-sig, quae automatice characteribus BOM processit et eventum ufeff tollendum est.

Lima certa row vel columnae data lectio operandi
  1. with open(file_name, 'r', encoding='utf-8-sig') as f:
  2. reader = csv.reader(f)
  3. list_csv = list(reader)
  4. for i in range(len(list_csv)-5,len(list_csv)): # 如读取后5行数据
  5. print(list_csv[i])
  6. print(list_csv[i][:3]) # 读取指定列数据

txt file readlines, modi lege

Utere modos legendi readlines () ac lima ex txt lege, et sunt novae lineae in notitia legendi quae procedendum est.Nihil opus est ad bibliothecam csv importare

  1. with open(file_name, 'r', encoding='utf-8-sig') as f:
  2. reader_lines = f.readlines() # 读取所有行放在一个列表中
  3. for da in reader_lines: # 也可以使用range方法读取指定行的数据,读取结果中有换行符需要处理
  4. print(da.replace('n',''))
  5. reader = f.read()
  6. print(reader)

csv.DictReader modum

Legere data in forma dictionarii, et notitia impressa in forma dictionarii clavem pretii paria.

  1. with open(file_name,'r', encoding='utf-8-sig',newline='') as f:
  2. reader =csv.DictReader(f)
  3. for r in reader:
  4. print(r)

data initus

txt file scribe, writelines

Nihil opus est ad bibliothecam csv importare

Utere scribe et scribe lineas tabellae ad scribendum data. Si ordinem blank inserere vis, charactere novo utere ad parametri notitia. Si cellam vacuam scribere vis, commaculato utere pro parametri notitia.

  1. with open(file_name, 'w', newline='') as f:
  2. f.write('测试写入数据操作n')
  3. f.write('n')
  4. f.writelines(["角色管理,测试测试", "账号管理n", "部门管理n"])

  

csv.writer modum

Cum scriptione data, rem variam accipias, quae objectum traversum esse potest, ut chorda, album, tuplum, paro, dictionarium, etc. writerow uno versu scribebant notitias et scribentes varios ordines notitiarum.

  1. with open(file_name, 'w', newline='') as f:
  2. ws = csv.writer(f) # 创建一个写入文件对象
  3. ws.writerow([]) # 列表内容为空,插入的是一个空行
  4. ws.writerow(["设备实时监控", "设备数据列表", "设备报警分析"]) # 列表数据
  5. ws.writerow(("角色管理", "账号管理", "部门管理")) # 元组数据
  6. write_data = ['贾史王薛',
  7. ['贾不假,白玉为堂金作马', '阿房宫,三百里,住不下金陵一个史', '东海缺少白玉床,龙王请来金陵王',
  8. '丰年好大雪,珍珠如土金如铁'], ('cao', 'xue', 'qin', 'shu'), {'曹', '雪', '芹', '书'},
  9. {'贾': '宝玉', '史': '湘云', '王': '熙凤', '薛': '宝钗'},
  10. {'贾': '宝玉', '史': '湘云', '王': '熙凤', '薛': '宝钗'}.values()]
  11. ws.writerows(write_data) # writerows写入多行数据

csv.DictWriter methodo

Cum data scribo, DictWriter determinare debet utrum clavis in campis in clavibus dictionarii fundata sit. Si non existit, error indicabitur Claves notitiarum quae scribendae sunt, et eam cum originali lima capitis compara.

  1. fieldnames = ['姓氏', '人物', '说明'] # 表头
  2. dictate = [{'姓氏': '贾', '人物': "宝玉"}, {'姓氏': '史', '人物': "湘云"}, {'姓氏': '王', '人物': "熙凤"},
  3. {'姓氏': '薛', '人物': "宝钗"}]
  4. with open(file_name, 'w', newline='') as f:
  5. write = csv.DictWriter(f, fieldnames=fieldnames, delimiter=',')
  6. write.writeheader() # 写入表头
  7. write.writerow({'姓氏': '贾', '人物': "宝玉"}) # 单行模式写入
  8. write.writerows(dictate) # 多行模式写入

Scribere legere-unio (mutare ac data inserta)

Principium: Primum data fasciculi originalis lege, eam transfer ad tabulas reponendas, tum utere methodum indicem addendi, deleendi aliasque operationes in indice habito, et denique scribe notitias mutationis in tabella multilinei scribendo.

  1. # 第一步:读取数据
  2. with open(file_name, 'r+', newline='') as f:
  3. file_csv_data = list(csv.reader(f))
  4. # 第二步:操作数据
  5. # 插入数据
  6. file_csv_data.insert(2, '贾史王薛') # 在某行插入一行数据,如在第3行插入数据
  7. file_csv_data[2].insert(0, '红楼四大家族') # 在指定单元格插入数据,如在3行1列的单元格插入数据
  8. # 修改数据
  9. file_csv_data[2] = ['贾不假,白玉为堂金作马', '阿房宫,三百里,住不下金陵一个史', '东海缺少白玉床,龙王请来金陵王',
  10. '丰年好大雪,珍珠如土金如铁', ''] # 修改指定行一行数据
  11. file_csv_data[2][4] = '葫芦僧判葫芦案' # 修改某一单元格数据,如修改3行5列数据
  12. # 修改符合条件的数据数据
  13. # 修改符合要求的单元格数据:通过for循环遍历判断,例如修改单元格中包含1的数据,将1替换成一
  14. # for r_id, row in enumerate(file_csv_data): # 通过行号列号修改
  15. # for c_id, col in enumerate(row):
  16. # if '1' in col:
  17. # file_csv_data[r_id][c_id] = col.replace('1', '一')
  18. for row in file_csv_data: # 通过行数据及列号修改,比上面更方便
  19. for c_id, col in enumerate(row):
  20. if '1' in col:
  21. row[c_id] = col.replace('1', '一')
  22. # 第三步:写入报存数据
  23. with open(file_name, 'w', newline='') as f:
  24. write_file = csv.writer(f)
  25. write_file.writerows(file_csv_data)