706775662 发表于 2020-8-1 16:12:25

【不懂就问】 python怎么批量将RGB转为灰度图,这边报错了。。

求助!!!

706775662 发表于 2020-8-1 16:13:08

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 '.JPG':
      I = Image.open(file)
      L = I.convert('L')
      L.save('g '+file)

706775662 发表于 2020-8-1 16:13:41

噢噢是批处理

Twilight6 发表于 2020-8-1 16:16:28

本帖最后由 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)

706775662 发表于 2020-8-1 16:24:06

Twilight6 发表于 2020-8-1 16:16
if filexten == '.png' or '.JPG' 条件永远符合,因为 Python 判断的是(filexten == '.png') or ('.J ...

谢谢回复,可是还是一样报错,错误没变{:5_104:}

Twilight6 发表于 2020-8-1 16:25:11

706775662 发表于 2020-8-1 16:24
谢谢回复,可是还是一样报错,错误没变



报错内容发上来,我这里刚刚测试正常运行了:

706775662 发表于 2020-8-1 16:26:34

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

Twilight6 发表于 2020-8-1 16:28:10

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)

706775662 发表于 2020-8-1 16:29:25

Twilight6 发表于 2020-8-1 16:28
你忘记将你的 open 加上路径了,因为你的工作目录不在F:\ground fissure experiment\7.29\X5S\input...

{:10_266:}额,我真的太菜了

Twilight6 发表于 2020-8-1 16:31:18

706775662 发表于 2020-8-1 16:29
额,我真的太菜了

哈哈 细心点就好~

陈尚涵 发表于 2020-8-1 16:35:34

我来晚了一步,我都观察好久了,也没到我出场的份{:10_266:}{:10_266:}

706775662 发表于 2020-8-1 16:36:57

陈尚涵 发表于 2020-8-1 16:35
我来晚了一步,我都观察好久了,也没到我出场的份

哈哈哈,也谢谢你呀

陈尚涵 发表于 2020-8-1 16:37:51

706775662 发表于 2020-8-1 16:36
哈哈哈,也谢谢你呀

我都没回答,感谢我什么{:10_266:}

706775662 发表于 2020-8-1 16:38:53

这边补个完整的,还要加油呀{:10_266:}

706775662 发表于 2020-8-1 16:39:26

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) # 保存在新的文件路径下 "/"一定别忘了

陈尚涵 发表于 2020-8-1 16:40:25

706775662 发表于 2020-8-1 16:38
这边补个完整的,还要加油呀

嗯,加油{:10_298:}

永恒的蓝色梦想 发表于 2020-8-1 17:00:38

706775662 发表于 2020-8-1 16:29
额,我真的太菜了

选最佳
页: [1]
查看完整版本: 【不懂就问】 python怎么批量将RGB转为灰度图,这边报错了。。