用python,判断文件是否存在,如果不存在,则新建一个新的文件夹,如果存在,则跳过
时间: 2024-05-12 10:20:36 浏览: 54
可以使用os模块来实现判断文件是否存在的功能,如果不存在则创建文件夹。
示例代码如下:
```python
import os
folder_name = "example_folder"
if not os.path.exists(folder_name):
os.makedirs(folder_name)
print("Folder created successfully.")
else:
print("Folder already exists.")
```
首先定义了一个变量folder_name作为文件夹的名称,如果该文件夹不存在,则调用os.makedirs()函数来创建文件夹,并输出提示信息。如果文件夹已经存在,则直接输出提示信息。
相关问题
修改代码,如果出现CNKI这个sheet则忽略
好的,如果您需要忽略名为“CNKI”的sheet,可以在代码中添加一个判断条件,判断当前sheet的名称是否为“CNKI”,如果是则跳过当前循环。以下是修改后的代码:
```python
import os
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
import shutil
# 遍历文件夹
for filename in os.listdir('path/to/folder'):
if not filename.endswith('.xlsx'):
continue # 忽略非xlsx文件
# 打开Excel文件
wb = load_workbook(filename='path/to/folder/' + filename, read_only=True)
# 遍历所有sheet,分别处理
for sheetname in wb.sheetnames:
if sheetname == 'CNKI':
continue # 忽略名为“CNKI”的sheet
ws = wb[sheetname]
# 获取A1单元格内容
name = ws['A1'].value
# 新建Excel文件,并复制当前sheet到新文件
new_filename = name + '.xlsx'
new_wb = Workbook()
new_ws = new_wb.active
new_ws.title = sheetname
for row in ws.iter_rows(min_row=1, max_col=ws.max_column, max_row=ws.max_row):
for cell in row:
new_ws[cell.coordinate].value = cell.value
# 保存新文件,并重命名
new_wb.save(filename='path/to/folder/' + new_filename)
# 删除原文件
os.remove('path/to/folder/' + filename)
```
同样需要将代码中的`path/to/folder`替换为您实际的文件夹路径。
def get_images_and_labels(path): image_paths = [os.path.join(path, f) for f in os.listdir(path)] # 新建连个list用于存放 face_samples = [] ids = [] # 遍历图片路径,导入图片和id添加到list中 for image_path in image_paths: # 通过图片路径将其转换为灰度图片 img = Image.open(image_path).convert('L') # 将图片转化为数组 img_np = np.array(img, 'uint8') if os.path.split(image_path)[-1].split(".")[-1] != 'jpg': continue # 为了获取id,将图片和路径分裂并获取 id = int(os.path.split(image_path)[-1].split(".")[1]) # 调用熟悉的人脸分类器 detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = detector.detectMultiScale(img_np) # 将获取的图片和id添加到list中 for (x, y, w, h) in faces: face_samples.append(img_np[y:y + h, x:x + w]) ids.append(id) return face_samples, ids
这段代码是一个 Python 函数,用于读取一个文件夹中的人脸图像,并将其转化为灰度图像,并返回一个包含人脸图像数组和相应标签的元组。具体解释如下:
- 函数名为 get_images_and_labels,接收一个参数 path,表示要读取的文件夹路径。
- 第一行代码使用 os.listdir() 函数列出文件夹中的所有文件名,并使用 os.path.join() 函数将路径和文件名结合起来,得到完整的文件路径列表。
- 接下来新建两个空列表 face_samples 和 ids,用于存放人脸图像和相应的标签。
- 然后对于每个文件路径,读取图像并将其转化为灰度图像,然后将其转化为 numpy 数组。
- 接下来判断文件名是否以 jpg 结尾,如果不是,则跳过该文件,继续处理下一个文件。
- 然后通过文件名获取该图像的标签 id,该 id 是文件名中第二个点号后面的数字。
- 然后调用一个人脸分类器 haarcascade_frontalface_default.xml,该分类器是 OpenCV 提供的一个预训练分类器,用于检测人脸。
- 然后使用该分类器检测该图像中的人脸,并将检测到的人脸作为样本添加到 face_samples 列表中,并将其相应的标签添加到 ids 列表中。
- 最后返回 face_samples 和 ids 两个列表作为元组。
阅读全文