For 循环在 python 中的第一项之后终止

For loop terminates after first item in python

我正在尝试通过提供 with 语句和列出我要处理的文件的文件路径的文本文件来处理目录中的多个图像(处理包括显示的灰度和一些去噪和像素强度测量)。 使用下面显示的代码,程序正确处理列表中的第一个文件,但在处理其他文件之前结束。有谁知道我为什么以及如何让它遍历列出的所有文件?

#establish loop
with open('file_list.txt') as inf:
    for line in inf:
       path = line

# grayscale and plot
original = io.imread(path, plugin = 'pil')
grayscale = rgb2gray(original)

每次迭代都会给出一个新的path,所以你得到的是最后一条路径,而不是第一条。 运行 imreadrgb2gray 分配路径后在循环内。

#establish loop is correct
with open('file_list.txt') as inf:
    for line in inf:
       path = line # Each iteration path will have a new path value

       # grayscale and plot
       original = io.imread(path, plugin = 'pil')
       grayscale = rgb2gray(original)