首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件写入和读取

文件写入和读取
EN

Stack Overflow用户
提问于 2014-12-13 07:17:58
回答 2查看 72关注 0票数 0
代码语言:javascript
复制
try:
   studfile = open("students.csv","r")
except IOError:
   studfile = open("students.csv","w")

#later in the code
studfile.write(students)

这个try / out块的目的是尝试并路由出IOError,但是我最终得到了另一条错误消息,它是“预期的字符缓冲区对象”。帮我解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2014-12-13 07:24:19

这就是你要得到的TypeError。您的“学生”类型应该是字符串,同时写入文件。使用str(students)可以解决您的问题。

编辑:str可以将任何对象转换为string类型。考虑到下面的评论:因为您没有提到student的类型。如果是字符串列表(假设)。那么你就不能这样写:studfile.write(students)

您应该这样做:

代码语言:javascript
复制
for entry in students:
    studfile.write(entry)  # decide whether to add newline character or not
票数 0
EN

Stack Overflow用户

发布于 2014-12-13 08:00:43

假设students是您希望保存为csv文件的某种形式的数据,那么最好使用csv文件IO中构建的python。例如:

代码语言:javascript
复制
import csv
with open("students.csv","wb") as studfile:   # using with is good practice
    ...
    csv_writer = csv.writer(studfile)
    csv_writer.writerow(students)            # assuming students is a list of data
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27456517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档