python-读取EXCEL多个sheet数据写入csv(四)

需求

  • 读取一个EXCEL所有的sheet数据
  • 多次运行追加写入csv文件
# -*- coding: utf-8 -*-
"""
Created on   2021/12/29 19:20

@author: tangge
"""
import pandas as pd
import time

path = "D:/code_fileAll/test_file/input/老头乐.xlsx"
res_path = "D:/code_fileAll/test_file/output/"
curr_date = time.strftime("%Y%m%d", time.localtime())
print(curr_date)

# 读取EXCEL,设定列名,None读取所有sheet, 默认只读第一个
df = pd.read_excel(path, names=[1, 2, 3, 4], sheet_name=None)
a = []
# items 拆分数据为元组
for name , data in df.items():
    a.append(data)
# axis=0 按列上下拼接,1为行左右拼接
df2 = pd.concat(a, axis=0)a

df=df2
# 拼接文件路径与文件名
res_file_name = f"{res_path}xlsxToCsv_{curr_date}.csv"

# 第4列值包含两个中文的字符,只要两列, 与下面的to_csv中column功能重复
# case 大小写设置 , na 空值设置(fillna 在此处无效)
df_2 = df[df[4].str.contains("^[一-龥]{2}$", case=True , na=False)].loc[:, [1, 2]]


# 追加写入,不要索引,不要表头, 选取固定列 mode='a' 追加, mode='w'-->覆盖, 只要两列
df_2.to_csv(res_file_name, mode='a', sep=',', index=None, header=None)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSV(Comma-Separated Values)文件是一种常用的数据交换格式,它以逗号分隔不同的字段并使用换行符分隔不同的行。CSV文件通常用于存储相对简单的数据,例如表格数据。不过,CSV文件并不支持多个sheet,因此无法直接追加sheet。 如果你需要将多个表格数据存储在同一个文件中,并且希望能够访问不同的sheet,可以考虑使用 Excel 文件格式。Python中可以使用openpyxl库来操作Excel文件。下面是一个将数据写入Excel文件的示例代码: ```python import openpyxl # 打开Excel文件,如果文件不存在则创建 workbook = openpyxl.Workbook() workbook.save('example.xlsx') # 打开工作簿 workbook = openpyxl.load_workbook('example.xlsx') # 创建新的sheet worksheet = workbook.create_sheet(title='Sheet2') # 写入数据 worksheet['A1'] = 'Name' worksheet['B1'] = 'Age' worksheet['A2'] = 'Alice' worksheet['B2'] = 25 # 保存文件 workbook.save('example.xlsx') ``` 如果需要追加sheet,则可以使用`workbook.create_sheet()`方法,并设置`index`参数来指定新sheet插入的位置。例如,如果需要将新sheet插入到文件末尾,可以先获取sheet总数,然后将新sheet插入到最后一个位置,如下所示: ```python import openpyxl # 打开工作簿 workbook = openpyxl.load_workbook('example.xlsx') # 获取sheet总数 sheet_count = len(workbook.sheetnames) # 创建新的sheet写入数据 worksheet = workbook.create_sheet(title='Sheet3', index=sheet_count) worksheet['A1'] = 'Name' worksheet['B1'] = 'Age' worksheet['A2'] = 'Bob' worksheet['B2'] = 30 # 保存文件 workbook.save('example.xlsx') ``` 注意,这种方式追加sheet只适用于Excel文件格式,不适用于CSV文件格式。如果需要将多个CSV文件合并为一个文件,可以使用Python的csv模块读取每个文件中的数据,并将数据写入到同一个文件中。具体方法可以参考以下示例代码: ```python import csv # 打开目标文件,如果文件不存在则创建 with open('merged.csv', 'a', newline='') as outfile: writer = csv.writer(outfile) # 依次读取每个源文件并写入目标文件 for filename in ['file1.csv', 'file2.csv', 'file3.csv']: with open(filename, 'r') as infile: reader = csv.reader(infile) for row in reader: writer.writerow(row) ``` 以上代码将读取`file1.csv`、`file2.csv`和`file3.csv`中的所有数据,并将它们写入到同一个文件`merged.csv`中。注意,这种方式将所有数据写入到同一个sheet中,并没有创建多个sheet

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值