gpt4 book ai didi

python - For循环没有正确迭代

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:56 24 4
gpt4 key购买 nike

我编写了一个将多个文本文件合并在一起的程序,从那里开始,我尝试使用 for 循环将日期添加到第一列,因为有几个不同的日期。但是,使用这些循环,程序似乎无法正确迭代。

支持的文本文件有一个没有日期的时间列表;但是,每个文本文件都与不同的日期相关联。我将所有文本文件合并到一个文本文件中以便于使用,但为了使其有用,我尝试将日期添加到出现在文本文件第一列中的时间。

代码如下:

    import glob
from datetime import *
mon = [6, 7]
dayrange1 = [24, 25, 26, 27, 28, 29, 30]
dayrange2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

m = 0
d1 = 0
d2 = 0
newline = []



fout = open("C:\\Users\\jessica.macleod\\Desktop\\SurmontArray1.txt", "a")
for filename in glob.glob("C:\\Users\\jessica.macleod\\Desktop\\Surmont Noise Files\\s1-424surmontnoise2012*.txt"):
f = open(filename)
f.next()
f.next()
d1 = 0
d2 = 0
for months in mon:

if m == 0:

for days in dayrange1:

for line in f:
line += str(date(2012, mon[m], dayrange1[d1])) + " "
fout.write(line)
d1 = d1 + 1
m = m + 1


if m == 1:

for days in dayrange2:

for line in f:
line += str(date(2012, mon[m], dayrange2[d2])) + " "
fout.write(line)
d2 = d2 + 1




f.close()
fout.close()

最佳答案

dayrange1 不会在 for months in mon 的第二个循环中迭代,因为您已将 m 设置为 1。它被跳过是因为它受到条件 if m == 0: 的保护。这意味着只有您的 glob 中第一个匹配的文件名才会有遍历 dayrange1 的结果。您需要在其中一个循环内将 m 重置为 0

此外,您在 daterange1 中迭代了 days。在该循环的第一次迭代中,您遍历了 f 的全部内容。这意味着在 daterange1 的第二次迭代中,文件已用完。

此外,您不要在循环中使用 days

关于python - For循环没有正确迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12269712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com