我正在尝试将大型目录中的一系列特定文件中的数据输入到用Python编写的模型中。
我目前做的一次循环文件:
for i in range(nt):
streamflow = "streamflow"
nc = ".nc"
discharge_filename=[streamflow + `i` +nc for i in range(1000,2000)]
然后对模型中的每个时间步骤使用这些文件中的每一个。我希望能够不止一次遍历文件,所以当我到达,discharge_filename = streamflow2000.nc时,我返回到streamflow1000.nc并重新开始计数,直到for循环结束。
这看起来很简单,但我很少用Python编写代码,这真的让我很难受!感谢任何帮助,谢谢!
答案 0 :(得分:0)
如果您希望循环已经已经循环的内容,则需要定义外部循环。外循环将定义您希望内循环运行的次数。
例如:
for n in range(0,10):
for o in range(0,10):
print(n + o)
答案 1 :(得分:0)
@ Chadvandehey的答案是正确的 - 如果你想要超越无限循环,只需执行while True
或者根本没有外部循环:只需使用xrange而不是range,并在{{}时在内循环中赋值0 1}}。使用while循环,如下所示:
i == nt-1
对无限循环非常小心。
答案 2 :(得分:0)
在Python 3.6+中,您可以使用Literal String Interpolation。在循环中创建文件名可以通过以下方式完成:
for i in range(1000, 2001):
filename = f'streamflow{i}.nc'
...
关于建议在上面的代码周围放置一个外部循环的其他答案,我认为你实际上想要这样做:
for i in range(1000, 2001):
filename = f'streamflow{i}.nc'
# read data
# Some logic here
for i in range(1000, 2001):
filename = f'streamflow{i}.nc'
# write data (once to each file)
但是,如果您真的想要/需要多次向这些文件附加一些数据,只需使用其他答案中提供的外部循环。