我在使用以下Python代码时遇到了问题。它运行没有错误,但它并没有给我预期的输出;根本没有文件被写入。
for l in h:
r=l.rfind(",")+1
s=l[r:-2]
j=0
while j<18:
if s[j]==1:
f=codecs.open("genre_"+str(j)+".csv","w","utf-8")
f.write(l)
f.close()
j=j+1
h
是一个字符串列表,通常类似于1,32,3.5,1112484819,000000000000101100\r\n
s
是h
中字符串的结尾,特别是最后一个数字字符串s
中的每个1,while循环将h
的当前字符串写入相应的索引genre_[num].csv
文件因此,例如,h[2]
是上面的示例字符串,文件genre_12.csv
,genre_14.csv
和genre_15.csv
应该随之写入。事情是,在运行代码之后,这些类型文件甚至都没有被创建。
我已经尝试了其他代码变体(&#39;将codecs.open作为f:&#39;)但是没有更好的表现。我错过了一些明显的东西吗?
答案 0 :(得分:0)
您需要缩进for循环中的代码。缩进在python中非常重要,因为没有使用大括号或分号。希望这能解决您遇到的问题!
:) Derek
.blank1 {
background-color: white;
display: block;
float: left;
width: 9%;
height: 9%;
margin: 10px 30px 60px 65px;
}
答案 1 :(得分:0)
问题是您将s设置为包含s=l[r:-2]
的字符串,然后检查带有if s[j]==1:
由于从未满足条件,因此不会写入任何文件。检查字符串“1”,它将起作用:
for l in h:
r=l.rfind(",")+1
s=l[r:-2]
j=0
while j<18:
if s[j]=="1":
f=codecs.open("genre_"+str(j)+".csv","w","utf-8")
f.write(l)
f.close()
j=j+1
`