首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中for循环块中的多行

python中for循环块中的多行
EN

Stack Overflow用户
提问于 2016-11-11 12:56:09
回答 3查看 9.5K关注 0票数 0

我有一个关于python的非常基本的问题。我想拆分以下列表中的项目,并将其打印到文本文件中。

代码语言:javascript
运行
复制
import pandas as pd
s = ['"9-6": 1', ' "15-4": 1', ' "12-3": 1', ' "8-4": 1', ' "8-5": 1', ' "8-1": 1']
print type(s)
for i in s:
     j = i.split(',')
     with open("out.txt","w") as text_file:
             text_file.write("{}".format(j))

但是,我的代码只打印最后一个值。显然,它不会占用for循环块中的最后几行。谁能指出我哪里错了?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-11 13:04:41

您没有追加这些值。你每次都在重写。试着这样做:

代码语言:javascript
运行
复制
with open("out.txt","a+") as text_file:

在这里,我将"w“替换为"a+”。

完整代码:

代码语言:javascript
运行
复制
import pandas as pd
s = ['"9-6": 1', ' "15-4": 1', ' "12-3": 1', ' "8-4": 1', ' "8-5": 1', ' "8-1": 1']
print type(s)
for i in s:
    j = i.split(',')
    with open("out.txt","a+") as text_file:
        text_file.write("{}".format(j))
票数 1
EN

Stack Overflow用户

发布于 2016-11-11 13:08:22

每次你使用'w‘选项打开out.txt时,它甚至在你写任何东西之前就会完全擦除该文件。您应该将with语句放在for循环开始之前,以便文件只打开一次。

票数 0
EN

Stack Overflow用户

发布于 2016-11-11 13:12:54

for循环的每一次迭代,你截断你的文件内容。“清空文件”。这是因为当使用开放模式时,PythonPython会隐式截断文件,因为您已经在上一次迭代中创建了文件。Python 2.7中记录了这种行为:

..“w”用于编写to files..

请改用选项a+,该选项会附加到文件中。Python 2.7文档也注意到了这一点:

..'a‘表示追加..

这意味着:

...open('out.txt' 'w')...

应该是:

...open('out.txt', 'a')...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40541350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档