写入 python 中的文件
write to file in python
我可能会问一个愚蠢的问题。我刚开始学习Python.
我有一个简单的 python 脚本,它使用两种方法定义了 class:add_course
和 write_to_file
:
class School:
courses=["Math","Physics","Chemical"]
def __init__(self):
return
def add_course(self, course):
if course not in self.course:
self.course.append(course)
def write_to_file():
course_file = open('courses.csv', 'w+')
wr = csv.writer(course_file, delimiter='\t')
writer.writerow(self.courses)
// create a School instance
school = School()
// add course
school.add_course("test")
school.add_course("test2")
school.add_course("test")
// write course to file
school.write_to_file()
我运行上面的脚本,然后,我打开courses.csv文件,我没有看到"test"和"test2",但是我可以看到课程"Math","Physics","Chemical" 为什么?
目前您已将课程添加为 class 级属性,但试图将其作为实例属性进行访问,因此您必须 将课程初始化 移动到 __init__
方法,如下面的代码片段所示:
def __init__(self):
self.courses = ["Math", "Physics", "Chemical"]
您还必须修改 add_course
方法以将项目附加到 self.courses
和 而不是 self.course
:
def add_course(self, course):
if course not in self.courses:
self.courses.append(course)
请参阅 SO Python: Difference between class and instance attributes 问题以获取有关应如何以及何时使用每种属性的更多说明。
我在你的代码片段中发现了一些错误,因为你是 Python 的新手,所以考虑发布工作代码 -
class School:
courses=["Math","Physics","Chemical"]
def __init__(self):
return
def add_course(self, course):
if course not in self.courses:
self.courses.append(course)
def write_to_file(self):
with open('courses.csv', 'w+') as course_file:
wr = csv.writer(course_file, delimiter='\t')
wr.writerow(self.courses)
我的改变-
1. def write_to_file(self)
2.if course not in self.courses:
self.courses.append(course)
3. wr.writerow(self.courses)
我可能会问一个愚蠢的问题。我刚开始学习Python.
我有一个简单的 python 脚本,它使用两种方法定义了 class:add_course
和 write_to_file
:
class School:
courses=["Math","Physics","Chemical"]
def __init__(self):
return
def add_course(self, course):
if course not in self.course:
self.course.append(course)
def write_to_file():
course_file = open('courses.csv', 'w+')
wr = csv.writer(course_file, delimiter='\t')
writer.writerow(self.courses)
// create a School instance
school = School()
// add course
school.add_course("test")
school.add_course("test2")
school.add_course("test")
// write course to file
school.write_to_file()
我运行上面的脚本,然后,我打开courses.csv文件,我没有看到"test"和"test2",但是我可以看到课程"Math","Physics","Chemical" 为什么?
目前您已将课程添加为 class 级属性,但试图将其作为实例属性进行访问,因此您必须 将课程初始化 移动到 __init__
方法,如下面的代码片段所示:
def __init__(self):
self.courses = ["Math", "Physics", "Chemical"]
您还必须修改 add_course
方法以将项目附加到 self.courses
和 而不是 self.course
:
def add_course(self, course):
if course not in self.courses:
self.courses.append(course)
请参阅 SO Python: Difference between class and instance attributes 问题以获取有关应如何以及何时使用每种属性的更多说明。
我在你的代码片段中发现了一些错误,因为你是 Python 的新手,所以考虑发布工作代码 -
class School:
courses=["Math","Physics","Chemical"]
def __init__(self):
return
def add_course(self, course):
if course not in self.courses:
self.courses.append(course)
def write_to_file(self):
with open('courses.csv', 'w+') as course_file:
wr = csv.writer(course_file, delimiter='\t')
wr.writerow(self.courses)
我的改变-
1. def write_to_file(self)
2.if course not in self.courses:
self.courses.append(course)
3. wr.writerow(self.courses)