网站设计咨询网站,苏州 互联网,设计一个网站,胶南网站建设多少钱CSV#xff0c;全称为 Comma-Separated Values#xff09;#xff08;逗号分隔值#xff09;#xff0c;是一种常用的文本文件格式#xff0c;用于存储表格数据#xff0c;如电子表格或数据库。它采用纯文本形式#xff0c;以逗号作为字段之间的分隔符#xff0c;每行…CSV全称为 Comma-Separated Values逗号分隔值是一种常用的文本文件格式用于存储表格数据如电子表格或数据库。它采用纯文本形式以逗号作为字段之间的分隔符每行表示一个数据记录。每行文本包含由逗号分隔的一个或多个字段。这些字段通常代表表格中的列。CSV文件具有简单、通用和易于处理的特点在数据处理和数据交换方面被广泛应用。 CSV文件结构
CSV文件由多行组成每行表示一个数据记录。每行中的字段使用逗号进行分隔字段之间可以包含文本、数字或日期等数据。文件的第一行通常用于定义字段名后续行则包含相应的数据值。字段值可以使用引号或双引号进行包裹以处理包含逗号或换行符的复杂数据。
# -*- coding: UTF-8 -*-grade0.csv
20170110,刘兴怡,Female,B
20170109,刘春燕,Female,B
20170106,周思云,Female,B
20170115,张铭武,Male,A
20170102,徐芳,Female,A
20170113,田益宾,Male,A
20170101,章阳,Male,A
20170112,胡瑞欣,Female,A
def csv_to_lst(filename):接收文件名为参数读取数据到二维列表中返回二维列表。形如[[20170101, 章阳, Male, A],... [20170108, 刘忆宁, Male, E]]with open(filename, r, encodinggbk) as f:grade_in_lst [line.strip().split(,) for line in f] # 逐行切分为列表得到二维列表return grade_in_lstdef sort_lst(list_name, n):接收需要排序的二维列表名和整数的排序列序号(范围为:1,2,3,4)为参数返回排序后的二维列表。list_name.sort(keylambda x: x[n - 1]) # 列序号从1开始列表中的序列从0开始排序依据用x[n - 1]return list_name # 返回排序后的列表def output(ls):接收排序后的二维列表为参数逐行输出每行的元素间用制表符分隔。for line in ls: # line 为子列表print(*line, sep\t) # *对子列表进行解包得到多个元素sep指定分隔符import csv# 创建并写入CSV文件
def create_csv():with open(example.csv, w, newline) as file:writer csv.writer(file)writer.writerow([Name, Age, City])writer.writerow([Alice, 30, New York])writer.writerow([Bob, 25, Los Angeles])print(CSV file example.csv created and written successfully.)def save_ls_csv(ls):with open(sort_lst_csv.csv, w, newline ) as file:writer csv.writer(file)#for line in ls:# writer.writerow(line)writer.writerows(ls)print(CSV file sort_lst_csv.csv created and written successfully.)def pandas_save_csv(ls):import numpy as npimport pandas as pd# 使用 numpy 创建一个示例数组data np.array(ls)# 将 numpy 数组转换为 pandas DataFrame#df pd.DataFrame(data, columns[A, B, C])df pd.DataFrame(data, columns[student number, name, sex,grade])# 保存为CSV文件df.to_csv(exapandas_save_csvmple.csv, indexFalse)print(CSV file pandas_save_csv.csv created and saved successfully.)def pandas_save_dict_list_to_csv():import pandas as pddict1 {学号: [235,432,204], 姓名: [Alice, Bob, Tom], 排名:[3, 23, 86]}df pd.DataFrame(dict1, indexrange(0,3))df.to_csv(pandas_save_dict_list_to_csv.csv,index False, encodinggbk )def save_ls_hex_csv(ls):with open(sort_lst_hex_csv.csv, w, newline ) as file:writer csv.writer(file)for line in ls:newline [hex(int(item)) if str(item).isdigit() else item for item in line]writer.writerow(newline)print(CSV file sort_lst_hex_csv.csv created and written successfully.)if __name__ __main__:file grade0.csvnum int(input(Please input the sort column (1 based) : ))grade_list csv_to_lst(file)ls_in_sort sort_lst(grade_list, num)output(ls_in_sort)save_ls_csv(ls_in_sort)pandas_save_csv(ls_in_sort)save_ls_hex_csv(ls_in_sort)pandas_save_dict_list_to_csv()# 假设我们有一个列表和要转换为十六进制的项的索引my_list [1234, abcd, xyz]# 转换字符串表示的整数为十六进制hex_list [hex(int(item)) if str(item).isdigit() else item for item in my_list]print(hex_list)grade_list_hex csv_to_lst(sort_lst_hex_csv.csv)ls_in_sort_hex sort_lst(grade_list_hex, 1)output(ls_in_sort_hex) CSV 文件有多种编码格式如 UTF - 8、UTF - 16、ANSI 等。如果 CSV 文件是 UTF - 8 编码而 Excel 默认使用的是 ANSI 编码打开就可能出现乱码。例如许多从网络应用程序或非 Windows 系统生成的 CSV 文件可能采用 UTF - 8 编码。
更改 Excel 编码设置 在 Excel 中可以通过 “数据” 选项卡中的 “自文本 / CSV” 功能来导入文件并在导入向导中选择正确的文件原始编码。在导入向导步骤中会有一个 “文件原始格式” 选项在这里可以选择 UTF - 8 等合适的编码格式来正确读取文件内容。 使用文本编辑器转换编码
先使用专业的文本编辑器如 Notepad。打开 CSV 文件后在 “编码” 菜单中查看文件的当前编码。如果是 UTF - 8 等非 Excel 默认支持的编码导致乱码可以将其转换为 ANSI 编码不过这种方法可能会丢失一些非 ASCII 字符信息需要谨慎使用。