“w”会删除现有文件,因此对于循环的每次迭代,都会删除以前编写的任何内容。处理此问题的正常方法是在循环之前打开文件一次
with open('stars.txt', 'w') as sourceFile:
for star in Constellation_data(starDf.values.tolist()):
print(star)
print(star, file = sourceFile)
请注意
with
子句-完成后将自动关闭文件。
如果您想在每次写入时关闭文件是有原因的(也许另一个文件正在读取它,或者您想更频繁地保存状态),那么您可以使用附加模式。我添加了代码来删除旧文件,然后在每个循环上追加。第一个追加将创建文件。
if os.path.exists('stars.txt'):
os.remove('stars.txt')
for star in Constellation_data(starDf.values.tolist()):
with open('stars.txt', 'a') as sourceFile:
print(star)
print(star, file = sourceFile)