装饰公司怎么做微网站,一键配置wordpress,网站建设整体策划,中国查公司的网站CSV 文件#xff08;Comma-Separated Values#xff0c;逗号分隔值文件#xff09;是一种常见的文本文件格式#xff0c;用于存储表格数据。它的特点是用逗号或其他特定字符#xff08;如分号、制表符等#xff09;来分隔不同的字段#xff0c;每行代表表格中的一条记录… CSV 文件Comma-Separated Values逗号分隔值文件是一种常见的文本文件格式用于存储表格数据。它的特点是用逗号或其他特定字符如分号、制表符等来分隔不同的字段每行代表表格中的一条记录。 import csv基本读写
读取 CSV 文件
最基本的功能是读取 CSV 文件。这可以通过 csv.reader 来实现。
with open(example.csv, newline) as csvfile:csvreader csv.reader(csvfile) #每行内容解析为列表for row in csvreader:print(row)这里newline 是为了确保读取时不会因为行结束符的问题出现错误。
写入 CSV 文件
写入 CSV 文件可以使用 csv.writer。
with open(output.csv, w, newline) as csvfile:csvwriter csv.writer(csvfile)csvwriter.writerow([Name, Age, City])csvwriter.writerow([Alice, 30, New York])csvwriter.writerow([Bob, 25, Los Angeles])writerow 方法用于写入单行数据。
字典读写
使用字典读取 CSV 文件
为了更方便地处理 CSV 文件可以使用 csv.DictReader它将每行数据读成字典。
with open(example.csv, newline) as csvfile:csvreader csv.DictReader(csvfile) # 创建 DictReader 对象headers csvreader.fieldnames # 可获取表头print(Headers:, headers)for row in csvreader: # 逐行读取数据print(row)DictReader 会自动将第一行作为字典的键。
使用字典写入 CSV 文件
类似地使用 csv.DictWriter 可以将字典写入 CSV 文件。
with open(output.csv, w, newline) as csvfile:fieldnames [Name, Age, City]csvwriter csv.DictWriter(csvfile, fieldnamesfieldnames)csvwriter.writeheader() # 写入表头csvwriter.writerow({Name: Alice, Age: 30, City: New York})csvwriter.writerow({Name: Bob, Age: 25, City: Los Angeles})writeheader 方法用于写入表头。
复杂处理
处理不同的分隔符
CSV 文件并不总是用逗号分隔可以用不同的分隔符。
with open(example_tab.csv, newline) as csvfile:csvreader csv.reader(csvfile, delimiter\t)for row in csvreader:print(row)同样地在写入时也可以指定分隔符。
with open(output_tab.csv, w, newline) as csvfile:csvwriter csv.writer(csvfile, delimiter\t)csvwriter.writerow([Name, Age, City])csvwriter.writerow([Alice, 30, New York])csvwriter.writerow([Bob, 25, Los Angeles])处理复杂的 CSV 格式
有时 CSV 文件中包含引号、换行符等特殊字符可以使用 csv 模块中的 QUOTE_* 常量进行处理。
with open(complex.csv, w, newline) as csvfile:csvwriter csv.writer(csvfile, quotingcsv.QUOTE_MINIMAL)csvwriter.writerow([Name, Age, City])csvwriter.writerow([Alice, 30, New\nYork])csvwriter.writerow([Bob, 25, Los Angeles])常见的 QUOTE_* 常量包括
csv.QUOTE_ALL: 对所有字段都加引号csv.QUOTE_MINIMAL: 只对包含特殊字符的字段加引号csv.QUOTE_NONNUMERIC: 对所有非数字字段加引号csv.QUOTE_NONE: 不加引号
自定义 CSV 方言
可以通过 csv.register_dialect 创建自定义的 CSV 方言方便处理不同格式的 CSV 文件。
csv.register_dialect(mydialect, delimiter;, quotingcsv.QUOTE_NONE)
with open(example.csv, newline) as csvfile:csvreader csv.reader(csvfile, dialectmydialect)for row in csvreader:print(row)在写入时也可以使用自定义方言
with open(output.csv, w, newline) as csvfile:csvwriter csv.writer(csvfile, dialectmydialect)csvwriter.writerow([Name, Age, City])csvwriter.writerow([Alice, 30, New York])csvwriter.writerow([Bob, 25, Los Angeles])