Python变量写入文件失败,控制台有输出但文件无内容如何解决?
问题原因
- 文件对象作用域错误:
with open(...) as file语法会在with代码块执行结束后自动关闭文件对象,你把file.write(x)写在了with块外部,此时文件已经被关闭,写入操作自然无法生效。 - 写入逻辑错误:当前代码里的
x会在循环过程中被反复覆盖,就算把write操作移入with块,原有写法也只会写入最后一条赋值语句,无法保存全部4行内容。
修复方案
将双重循环、写入逻辑都移到with代码块内部,每生成一行内容就同步写入文件,同时补充换行符保证文件内格式和控制台输出一致,修改后参考代码如下:
with open('letternumber.txt', 'w') as file: k=4 C = ['or'.join([' I{}.output '.format(i) for i in range(0, k)])] F = list(' C{}.input'.format(i) for i in range (0,k)) for j in C: for i in F: x = i + ' :=' + j + '\n' print(x.strip()) file.write(x)
内容的提问来源于stack exchange,提问作者Saad
相关产品推荐
相关产品推荐

