因此,我最近开始编写Python(3)。这是一个关于“平均图像”的项目;取图像的像素值,找出平均值,并将其放入图像中。我开始使用Python,因为我听说Python图像库(对我来说它工作得很好),用JavaScript编程太单调了
所以,我的代码:
#!/usr/bin/env python3
from PIL import Image
import os
main_dir = "/Users/dragonsruleethanslota/Downloads/image_averaging_python3.6"
image_dir = f"{main_dir}/images"
image_list = []
invisibles = [".DS_Store", ".Trashes"]
def reset_temptxt():
with open(f"{main_dir}/temp.txt", "w") as temptxt:
temptxt.write("")
def check_extensions(countq = False):
count = 0
for filename in os.listdir(image_dir): # Problematic lines of code
if filename in invisibles: # Also problematic
continue # Also problematic
try:
Image.open(f"{image_dir}/{filename}")
except OSError:
count = count + 1
if countq:
return count # Returns amount of bad file extensions
else:
return not count # Returns boolean of whether there are bad file extensions or not
if check_extensions():
for file in os.listdir(image_dir):
if filename in invisibles:
continue
image = Image.open(f"{image_dir}/{file}")
image_list.append([image, image.load()])
reset_temptxt()
def do_averages(xpixel, ypixel):
with open(f"{main_dir}/temp.txt", "a") as temptxt:
for (img, pixel_img) in image_list:
pixel = pixel_img[xpixel, ypixel]
temptxt.write("{},{},{}".format(*pixel))
do_averages(0, 0)
(我还有一个名为temp.txt
的文件和一个名为images
的文件夹)
这一切让人非常困惑的是,当我晚上回来重新启动它时:我去完成了do_averages()
函数的编程,然后运行它,期望在temp.txt
中看到一些东西,但是什么也没有运行。这是因为check_extensions()
函数失败,因为macOS向文件夹中添加了一个名为“.DS_Store”的文件。这导致功能失效;我添加了invisibles
列表,并检查当前文件是否在这些文件中。如果是这样,那么跳过代码的其余部分
但是,这一新行会引发一个错误!显然,Python找不到变量filename
(由循环分配的变量)。更让人困惑的是,当我删除支票时,没有出现错误。请帮忙;我是Python新手,觉得这是一个不经意的错误
问题不在你认为。。。 查看您的第二个功能检查扩展:
这里:它找不到文件名。。。因为你说“为文件在”,然后要求文件名!!! 因此,决定使用以下任一方法:
或:
问题在于:
您正试图访问
filename
,但在循环中使用的变量是file
。 将其更改为:相关问题 更多 >
编程相关推荐