我有一个复杂的结构,涉及一个对象(在以下简化代码中称为MyClass类的mc),在某些情况下,应该在csv文件中添加行(test1.csv和test2.csv)例子)。
该程序实际上是一台需要最终等待的服务器。在这里,我用待处理的输入替换了整个部分,因为我注意到在这种情况下会出现同样的问题。
以下是简化程序:
import csv
class MyClass(object):
def __init__(self):
csvfile = open("./test1.csv", 'w', encoding='utf-8', newline='')
stream = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
stream.writerow(["stream created"])
csvfile2 = open("./test2.csv", 'w', encoding='utf-8', newline='')
self.stream2 = csv.writer(csvfile2, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
self.stream2.writerow(["stream2 created"])
def do(self):
self.stream2.writerow(["done"])
mc = MyClass()
mc.do()
_ = input("doing a pause")
所以基本上我在这里创建一个对象“mc”,同时创建两个流。初始化结束后,stream1将关闭,只添加一行,但stream2将作为属性保留供以后使用。
如果我将输入保留为挂起,我可以注意到test1.csv和test2.csv都已创建,但test1.csv有我期望的行,test2.csv为空(我希望它有“stream2”行创造了“和”完成“)。如果我完成程序,那么test2.csv将根据需要填充。
我的问题是我想在不结束服务器的情况下检查文件的内容,并保留写更多内容的可能性。我怎么能这样做?