Python Error pytesseract: PermissionError: [WinError 5] Access is denied

本文介绍了一个使用Python的OCR(光学字符识别)过程中遇到的权限错误问题,并给出了具体的解决方案。通过调整Tesseract-OCR的路径设置,成功解决了[WinError5]Accessisdenied的报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = "C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"
image = Image.open(r"E:\Python\ocr\venv\111.png")
code = pytesseract.image_to_string(image)
print(code)

E:\Python\ocr\venv\Scripts\python.exe E:/Python/ocr/ocr.py
Traceback (most recent call last):
  File "E:/Python/ocr/ocr.py", line 7, in <module>
    code = pytesseract.image_to_string(image)
  File "E:\Python\ocr\venv\lib\site-packages\pytesseract\pytesseract.py", line 136, in image_to_string
    nice=nice)
  File "E:\Python\ocr\venv\lib\site-packages\pytesseract\pytesseract.py", line 82, in run_tesseract
    proc = subprocess.Popen(command, stderr=subprocess.PIPE)
  File "C:\Program Files\Python36\Lib\subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "C:\Program Files\Python36\Lib\subprocess.py", line 992, in _execute_child
    startupinfo)
PermissionError: [WinError 5] Access is denied

一段简单的读取图片code,一开始包FileNotFoundError,于是添加tesseract_cmd路径,出现 [WinError 5] Access is denied

将tesseract_cmd更改为以下,问题解决

pytesseract.pytesseract.tesseract_cmd = "C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe"

Python中出现`PermissionError: [WinError 5] Access is denied`错误,通常是因为程序试图访问或修改一个没有足够权限的文件或目录。以下是一些常见的原因和解决方法: 1. **文件或目录权限不足**: - 确认你有足够的权限访问或修改目标文件或目录。右键点击文件或目录,选择“属性”,然后在“安全”选项卡中检查权限设置。 2. **文件正在被其他程序使用**: - 确认目标文件没有被其他程序占用。你可以尝试关闭可能使用该文件的程序,或者在代码中使用`try-except`块来捕获异常并重试。 3. **路径错误**: - 确认你提供的文件路径是正确的。路径错误也可能导致权限错误。 4. **以管理员身份运行程序**: - 有时候,程序需要管理员权限才能访问某些文件或目录。你可以尝试以管理员身份运行你的Python脚本。 5. **使用`with`语句管理文件**: - 使用`with`语句可以确保文件在使用后正确关闭,避免文件被占用的问题。 以下是一个示例代码,展示了如何使用`try-except`块来处理`PermissionError`: ```python import os file_path = 'path/to/your/file.txt' try: with open(file_path, 'r') as file: data = file.read() print(data) except PermissionError as e: print(f"PermissionError: {e}") # 可以在这里添加更多的错误处理逻辑,比如提示用户检查权限 except FileNotFoundError as e: print(f"FileNotFoundError: {e}") ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值