如何在python

时间:2018-04-11 18:01:46

标签: python

我正在尝试将大型目录中的一系列特定文件中的数据输入到用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编写代码,这真的让我很难受!感谢任何帮助,谢谢!

3 个答案:

答案 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)

但是,如果您真的想要/需要多次向这些文件附加一些数据,只需使用其他答案中提供的外部循环。