文件写作和阅读

时间:2014-12-13 07:17:58

标签: python

try:
   studfile = open("students.csv","r")
except IOError:
   studfile = open("students.csv","w")

#later in the code
studfile.write(students)

这个try / except块的目的是尝试路由出IOError,但我最终收到了另一条错误消息,即" 期望一个字符缓冲区对象&#34 ;。有关如何修复它的帮助?

2 个答案:

答案 0 :(得分:0)

这是你得到的TypeError。你的学生'在写入文件时,type应该是字符串。使用str(students)可以解决您的问题。

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

你应该这样做:

for entry in students:
    studfile.write(entry)  # decide whether to add newline character or not

答案 1 :(得分:0)

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

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