python提取图片文件名字
时间: 2023-06-01 11:04:39 浏览: 302
你可以使用Python中的os模块来提取图片文件的文件名。首先,你需要导入os模块,然后使用os.listdir()函数来获取指定目录下所有文件的文件名,最后使用字符串的.endswith()方法来筛选出以指定后缀名(如.jpg、.png等)结尾的文件名。
下面是一个示例代码:
```
import os
# 指定目录路径
path = '/path/to/directory'
# 获取目录下所有文件名
files = os.listdir(path)
# 筛选出以.jpg或.png结尾的文件名
image_files = [file for file in files if file.endswith('.jpg') or file.endswith('.png')]
# 打印所有符合条件的文件名
for image_file in image_files:
print(image_file)
```
在上面的代码中,你需要将/path/to/directory替换为你想要提取文件名的目录路径。运行代码后,它将打印出所有以.jpg或.png结尾的文件名。
相关问题
python识别图片,提取名字和身份证号,其他不需要去掉,存放到表格
在Python中,要识别图片并提取其中的人脸及其相关信息(如姓名和身份证号码),通常需要结合多种库和技术。首先,你需要安装`opencv-python`库来处理图像,`face_recognition`库用于人脸识别,以及可能还需要OCR技术(如Tesseract)来识别文字。
以下是一个简化的步骤:
1. 安装所需库:
```bash
pip install opencv-python face_recognition pytesseract pillow
```
2. 使用人脸检测(例如Haar级联分类器)找到图片中的人脸:
```python
import cv2
from PIL import Image
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_recognition.face_locations(gray)
```
3. 对每个找到的人脸应用面部识别,获取特征向量:
```python
face_encodings = face_recognition.face_encodings(img, known_face_locations=faces)
```
4. 使用OCR识别身份证号码(假设已经有一张包含身份证号码的模板图片作为对比):
```python
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # 设置Tesseract路径
id_numbers = []
for encoding in face_encodings:
results = pytesseract.image_to_data(Image.fromarray(img), output_type=pytesseract.Output.DICT)
for result in results["text"]:
if "身份证" in result: # 这里只是一个简单的匹配条件,实际应用可能需要更精确的识别
id_numbers.append(result.split(" ")[0])
```
5. 提取到的信息保存到CSV或其他表格文件中:
```python
import csv
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'ID Number'])
for i, name in enumerate(faces):
writer.writerow([name[0], id_numbers[i]])
```
请注意,这只是一个基本示例,并未涵盖所有细节。实际操作中可能需要预处理图像、多人脸识别、错误处理等。此外,准确识别身份证号码涉及到复杂的OCR技术,对于非结构化文本的识别可能存在误差。
python识别图片,只提取名字和身份证号,存储到表格,其他内容全部去掉。
在Python中,为了实现这个需求,你可以使用OCR(Optical Character Recognition,光学字符识别)技术来识别图片中的文本,特别是姓名和身份证号码。一种常用的方法是结合`pytesseract`库(基于Tesseract OCR引擎)和`PIL`(Python Imaging Library)来读取图像,并使用正则表达式处理识别结果。
首先,你需要安装必要的库,可以使用pip进行安装:
```bash
pip install pytesseract opencv-python Pillow regex
```
然后编写一个简单的脚本,如下所示:
```python
import cv2
import pytesseract
import re
def extract_text(image_path):
# 读取图片
img = cv2.imread(image_path)
# 转换为灰度图并进行预处理
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用Otsu's二值化
_, thresh = cv2.threshold(gray_img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
# 进行OCR识别
text = pytesseract.image_to_string(thresh, lang='chi_sim') # 使用简体中文语言模型
# 提取姓名和身份证号(假设身份证号长度固定)
name_pattern = r'[姓名]+'
id_number_pattern = r'\d{6}(?:\d{4})?(?:\d{2})*(?:[xX]\d{1})?'
name = re.search(name_pattern, text).group(0) if name_pattern.search(text) else ''
id_number = re.search(id_number_pattern, text).group(0) if id_number_pattern.search(text) else ''
return name, id_number
# 示例
image_path = 'path_to_your_image.jpg'
name, id_number = extract_text(image_path)
# 将结果存储到CSV或Excel文件,这里仅作展示
with open('output.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow([name, id_number])
#
阅读全文