float time;
std::ofstream record;
record.open(".../time.csv", std::ios::app);
record << time << std::endl;
record.close();
二、python
1、python写csv、excel文件
import pandas as pd
import numpy as np
import os
from tqdm import tqdm
from openpyxl import Workbook, load_workbook
class Count(object):
#写入csv文件中
def WriteCsv(self, data, csv):
csv_header = [ #表头
"No.",
"value"
]
df = pd.DataFrame([data])
if os.path.exists(csv):
df.to_csv(path_or_buf=csv, encoding='utf_8_sig',
mode='a', index=False, header=False) #index为false表示不写入索引
else:
df.to_csv(path_or_buf=csv, encoding='utf_8_sig',
mode='a', index=False, header=csv_header)
#写入xlsx文件中
def WriteXlsx(self, data, excel):
if os.path.exists(excel):
wb = load_workbook(excel)
ws1 = wb.active
ws1.append(data)
wb.save(excel)
else:
wb = Workbook() #创建Workbook,并默认创建一个Sheet空表
ws1 = wb.active #获取默认的Sheet
ws1.title = 'Value' #设置Sheet的名字
excel_header = [
"No.",
"value"
]
ws1.append(excel_header)
ws1.append(data)
ws2 = wb.create_sheet('Sheet2') #创建新的Sheet
ws3 = wb.copy_worksheet(wb['Value']) #复制Sheet Value
wb.save(excel)
def Deal(self, csv, xlsx):
count = np.zeros(20)
recorder = []
i = 1
j = 0
for k in tqdm(range(100)): #显示进度条,引入tqdm需要用 from tqdm import tqdm
while j < 10:
recorder.clear()
recorder.append(i)
recorder.append(j)
self.WriteCsv(recorder, csv)
self.WriteXlsx(recorder, xlsx)
i = i + 1
j = j + 1
if __name__ == "__main__":
count = Count()
result_path = "/WR/example/Python/Numpy/"
csv = result_path + "result.csv"
xlsx = result_path + "result.xlsx"
count.Deal(csv, xlsx)
2、python读取多个csv文件的指定列写入一个csv文件
import os
import pandas as pd
from tqdm import tqdm
import csv
import re
class Get():
def WriteCsv(self, data, result):
csv_header = [ #表头
"file_name",
"No",
"time",
"value"
]
df = pd.DataFrame([data])
if os.path.exists(result):
df.to_csv(path_or_buf=result, encoding='utf_8_sig',
mode='a', index=False, header=False) # index为false表示不写入索引
# mode为写入模式,默认为w;a表示只能写,可以不存在,但不能修改原有内容,只能追加
else:
df.to_csv(path_or_buf=result, encoding='utf_8_sig',
mode='a', index=False, header=csv_header)
# csv转换为excel
def csv2excel(self, csv_path, excel_path):
if os.path.exists(csv_path):
data_csv = pd.read_csv(csv_path, encoding='utf_8_sig')
data_csv.to_excel(excel_path, index=False)
# os.remove(csv_path) # 会出现问题,还在转的过程中删除导致数据复制不全
else:
os.system(r"touch {}".format(path)) # 调用系统命令来创建文件
# excel转换为csv
def excel2csv(self, excel_path, csv_path):
if os.path.exists(excel_path):
data_excel = pd.read_excel(excel_path, index_col=0) # 0行0列开始
data_excel.to_csv(csv_path, encoding='utf_8_sig')
# os.remove(excel_path)
# 处理csv的行数据
def DealRow(self, file, file_name, result):
csv_result = result + ".csv"
excel_result = result + ".xlsx"
record = []
with open(file, 'r') as f:
reader = csv.reader(f)
for process in tqdm(reader): # 进度条
record.append(file_name) # 添加对应文件名
i = 0
for row in reader:
if i >= 58 and i <= 62:
if i > 58:
record.append('') # 将新建文件的对应59、60、61、62行的第一列置为空
record.append(row[0]) # 获取对应行的第1列
record.append(row[1]) # 获取对应行的第2列
record.append(row[2]) # 获取对应行的第3列
self.WriteCsv(record, result)
record.clear()
i = i + 1
self.csv2excel(csv_result, excel_result)
if __name__ == "__main__":
path = ""
result_path = ""
result_name = ""
get = Get()
for root, dirs, files in os.walk(path):
# root 表示当前正在访问的文件夹路径
# dirs 表示该文件夹下的子目录名列表
# files 表示该文件夹下的文件列表
for file in files:
if file.find('.csv') != -1:
file_name = file.split(".csv")[0]
file_name = re.sub('[\u4e00-\u9fa5]', '', file_name) # 去除中文字符
get.DealRow(path + "/" + file, file_name, result_path + "/" result_name)
3、python读取文件夹下所有文件
for root, dirs, files in os.walk(path):
# root 表示当前正在访问的文件夹路径
# dirs 表示该文件夹下的子目录名列表
# files 表示该文件夹下的文件列表
for file in files:
if file.find('.csv') != -1: