【不懂就问】 python怎么批量将RGB转为灰度图,这边报错了。。
求助!!! from PIL import Imageimport os
path = os.getcwd() # 获取当前路径
file_list = os.listdir(r'F:\ground fissure experiment\7.29\X5S\input')
for file in file_list:
filename = os.path.splitext(file)
filexten = os.path.splitext(file)
if filexten == '.png' or '.JPG':
I = Image.open(file)
L = I.convert('L')
L.save('g '+file) 噢噢是批处理 本帖最后由 Twilight6 于 2020-8-1 16:19 编辑
if filexten == '.png' or '.JPG' 条件永远符合,因为 Python 判断的是(filexten == '.png') or ('.JPG')
而字符串只要不为空,那么返回的都是 True,所以这里的 (filexten == '.png') or ('.JPG')可以视为 (filexten == '.png') or (True)
又因为 or 只要有一个条件为 True ,那么条件就成立,所以这里 filexten == '.png' or '.JPG'应该改成 filexten == '.png' or filexten == '.JPG' 即可
代码改成这样:
from PIL import Image
import os
path = os.getcwd() # 获取当前路径
file_list = os.listdir(r'F:\ground fissure experiment\7.29\X5S\input')
for file in file_list:
filename = os.path.splitext(file)
filexten = os.path.splitext(file)
if filexten == '.png' or filexten == '.JPG':
I = Image.open(file)
L = I.convert('L')
L.save('g '+file) Twilight6 发表于 2020-8-1 16:16
if filexten == '.png' or '.JPG' 条件永远符合,因为 Python 判断的是(filexten == '.png') or ('.J ...
谢谢回复,可是还是一样报错,错误没变{:5_104:} 706775662 发表于 2020-8-1 16:24
谢谢回复,可是还是一样报错,错误没变
报错内容发上来,我这里刚刚测试正常运行了:
Twilight6 发表于 2020-8-1 16:25
报错内容发上来,我这里刚刚测试正常运行了:
"D:\Program Files (x86)\python3.8\python.exe" C:/Users/Pantera/PycharmProjects/untitled2/grey.py
Traceback (most recent call last):
File "C:/Users/Pantera/PycharmProjects/untitled2/grey.py", line 14, in <module>
I = Image.open(file)
File "D:\Program Files (x86)\python3.8\lib\site-packages\PIL\Image.py", line 2843, in open
fp = builtins.open(filename, "rb")
FileNotFoundError: No such file or directory: 'X5_10.JPG'
Process finished with exit code 1 706775662 发表于 2020-8-1 16:26
"D:\Program Files (x86)\python3.8\python.exe" C:/Users/Pantera/PycharmProjects/untitled2/grey.py
...
你忘记将你的 open 加上路径了,因为你的工作目录不在F:\ground fissure experiment\7.29\X5S\input 下面
from PIL import Image
import os
path = os.getcwd() # 获取当前路径
file_list = os.listdir(r'F:\ground fissure experiment\7.29\X5S\input')
for file in file_list:
filename = os.path.splitext(file)
filexten = os.path.splitext(file)
if filexten == '.png' or filexten == '.JPG':
I = Image.open(r'F:\ground fissure experiment\7.29\X5S\input'+os.sep+file)
L = I.convert('L')
L.save('g '+file) Twilight6 发表于 2020-8-1 16:28
你忘记将你的 open 加上路径了,因为你的工作目录不在F:\ground fissure experiment\7.29\X5S\input...
{:10_266:}额,我真的太菜了 706775662 发表于 2020-8-1 16:29
额,我真的太菜了
哈哈 细心点就好~ 我来晚了一步,我都观察好久了,也没到我出场的份{:10_266:}{:10_266:} 陈尚涵 发表于 2020-8-1 16:35
我来晚了一步,我都观察好久了,也没到我出场的份
哈哈哈,也谢谢你呀 706775662 发表于 2020-8-1 16:36
哈哈哈,也谢谢你呀
我都没回答,感谢我什么{:10_266:} 这边补个完整的,还要加油呀{:10_266:} from PIL import Image
import os
path = r'F:\ground fissure experiment\7.29\X5S\input'# 源文件目录
path1 = r'F:\ground fissure experiment\7.29\X5S\gray'# 输出文件目录
file_list = os.listdir(path)
for file in file_list:
filename = os.path.splitext(file)
filexten = os.path.splitext(file)
if filexten == '.png' or filexten == '.JPG':
I = Image.open(path+"/"+file)
L = I.convert('L')
L.save(path1 + "/" + 'g ' + file) # 保存在新的文件路径下 "/"一定别忘了 706775662 发表于 2020-8-1 16:38
这边补个完整的,还要加油呀
嗯,加油{:10_298:} 706775662 发表于 2020-8-1 16:29
额,我真的太菜了
选最佳
页:
[1]