添加 header 并将传入的字符串数据附加到 csv python
adding header and append incoming string data into csv python
我在尝试创建 header 并在下一行中添加传入数据时收到一条错误消息
def copy_real_data(real_curData, real_curTime):
real_el_data = open(temp_path, "a")
real_prev_data = open(temp_path, "r").read()
header = ["Reading Right Shoulder Pitch Data", "ReadingTime"]
if real_prev_data =='':
real_el_data.write(header)
real_el_data.write(','.join([real_curData, real_curTime]))
real_el_data.write('\n')
real_el_data.close()
从外面打电话:
simulation.copy_real_data(str(0.76575), str(565657.989))
它以前工作..但是在做了几次之后..它生成了一条错误消息:
real_el_data.write(header)
TypeError: expected a character buffer object
我是不是漏掉了什么?
我已经设法解决了。好像是命令:
real_el_data.write(header)
只接受一个参数,而 'header' 包含两个参数。
我修改了:
if real_prev_data =='':
with open(temp_path, 'w') as f:
f_csv = csv.writer(f)
f_csv.writerow(header)
如果您发现有更简单的方法,请告诉我
一个简单的文件写入总是期望 character buffer
。
当 if 条件未命中时,它对你有效。
您可以尝试以下方法(使用 csv
模块):-
import csv
def copy_real_data(real_curData, real_curTime):
real_el_data = open(temp_path, "a")
real_prev_data = open(temp_path, "r").read()
header = ["Reading Right Shoulder Pitch Data", "ReadingTime"]
csvwriter = csv.writer(real_el_data)
if real_prev_data =='':
csvwriter.writerow(header)
csvwriter.writerow([real_curData, real_curTime])
real_el_data.close()
或者如果您不想使用 csv:-
def copy_real_data(real_curData, real_curTime):
real_el_data = open(temp_path, "a")
real_prev_data = open(temp_path, "r").read()
header = ["Reading Right Shoulder Pitch Data", "ReadingTime"]
if real_prev_data =='':
real_el_data.write(','.join(header))
real_el_data.write('\n')
real_el_data.write(','.join([real_curData, real_curTime]))
real_el_data.write('\n')
real_el_data.close()
我还没有测试代码,但它应该可以工作。
在您的代码头中有一个列表和写入方法接受字符缓冲区对象(字符串)。尝试使用 write(','.join(header))
我在尝试创建 header 并在下一行中添加传入数据时收到一条错误消息
def copy_real_data(real_curData, real_curTime):
real_el_data = open(temp_path, "a")
real_prev_data = open(temp_path, "r").read()
header = ["Reading Right Shoulder Pitch Data", "ReadingTime"]
if real_prev_data =='':
real_el_data.write(header)
real_el_data.write(','.join([real_curData, real_curTime]))
real_el_data.write('\n')
real_el_data.close()
从外面打电话:
simulation.copy_real_data(str(0.76575), str(565657.989))
它以前工作..但是在做了几次之后..它生成了一条错误消息:
real_el_data.write(header)
TypeError: expected a character buffer object
我是不是漏掉了什么?
我已经设法解决了。好像是命令:
real_el_data.write(header)
只接受一个参数,而 'header' 包含两个参数。 我修改了:
if real_prev_data =='':
with open(temp_path, 'w') as f:
f_csv = csv.writer(f)
f_csv.writerow(header)
如果您发现有更简单的方法,请告诉我
一个简单的文件写入总是期望 character buffer
。
当 if 条件未命中时,它对你有效。
您可以尝试以下方法(使用 csv
模块):-
import csv
def copy_real_data(real_curData, real_curTime):
real_el_data = open(temp_path, "a")
real_prev_data = open(temp_path, "r").read()
header = ["Reading Right Shoulder Pitch Data", "ReadingTime"]
csvwriter = csv.writer(real_el_data)
if real_prev_data =='':
csvwriter.writerow(header)
csvwriter.writerow([real_curData, real_curTime])
real_el_data.close()
或者如果您不想使用 csv:-
def copy_real_data(real_curData, real_curTime):
real_el_data = open(temp_path, "a")
real_prev_data = open(temp_path, "r").read()
header = ["Reading Right Shoulder Pitch Data", "ReadingTime"]
if real_prev_data =='':
real_el_data.write(','.join(header))
real_el_data.write('\n')
real_el_data.write(','.join([real_curData, real_curTime]))
real_el_data.write('\n')
real_el_data.close()
我还没有测试代码,但它应该可以工作。
在您的代码头中有一个列表和写入方法接受字符缓冲区对象(字符串)。尝试使用 write(','.join(header))