1. os库
osinputpath = r'D:\项目'
for root, dirs, files in os.walk(osinputpath)
print(root) # 当前目录路径
print(dirs) #当前路径下所有子目录,数据集合循环遍历
print(files) #当前路径下所有非目录子文件,数据集合循环遍历
for dir in dirs:
print(dir) #循环遍历
os.mkdir()
方法创建目录时,需要注意它只能创建单级目录(即父目录必须存在)
os.makedirs()
(支持多级目录创建):
拼接路径
import os
# 假设我们有以下变量
base_dir = "/home/user"
subdir = "documents"
filename = "report.txt"
# 使用os.path.join来拼接路径
full_path = os.path.join(base_dir, subdir, filename)
print(full_path) # 输出: /home/user/documents/report.txt
使用
import os
current_script_path = os.path.abspath(__file__) # 获取绝对路径
root_path = os.path.dirname(os.path.dirname(current_script_path)) # 定位到上上级目录
path= "reports/images"
full_path = os.path.join(root_path,path) # 拼接完整目录
print(full_path)
os.mkdir(full_path)
2. xlwt库
3. xlrd库
4. BeautifulSoup库
5. panda库
6. json库
7. re正则
8. ddddocr
登录网站的时候,经常输入用户名和密码后会遇到验证码,ddddocr是一款强大的通用开源ocr识别库,具有高效、准确、易用的特点,广泛应用于图像处理和文字识别任务。
import ddddocr
try:
login_page.wait_for_timeout(2000) # 等待2秒查看效果
yanzhengma_img = login_page.locator('//img[contains(@src,"data:image/png")]').screenshot(type='png') # 获取验证码图片
yzm = ddddocr.DdddOcr(show_ad=False).classification(yanzhengma_img) # 识别验证码
login_page.query_selector('//input[@placeholder="请输入验证码"]').fill(yzm) # 输入验证码数字
login_page.wait_for_timeout(2000) # 等待2秒查看效果
except Exception as e:
print(f"验证码处理失败: {str(e)}")
9. shutil
shutil
是 Python 标准库中的高级文件操作模块,它作为os模块的补充,提供了复制、移动、删除、压缩、解压等操作。是一个非常重要的模块。
import shutil
if __name__ == "__main__":
temp_dir = './reports/tmp'
# 检查目录是否存在,如果存在则清空
if os.path.exists(temp_dir):
shutil.rmtree(temp_dir)
os.makedirs(temp_dir, exist_ok=True)
10. f-string f"{}
f-string,亦称为格式化字符串常量,是Python3.6新引入的一种字符串格式化方法,主要目的是使格式化字符串的操作更加简便。形式上是以 f
或 F
修饰符引领的字符串(f'xxx'
或 F'xxx'
),以大括号 {}
标明被替换的字段
title = login_page.title()
test_log.info(f"登录系统成功,当前页面系统标题是:{title}")
11.for循环
elements = login_page.locator('//span[text()="填报"]')
for index, element in enumerate(elements.all(), start=1):
element.click()
elements = login_page.locator('//span[text()="填报"]')
for index, element in enumerate(elements.all(), start=1):
element.click()
login_page.wait_for_timeout(3000)
if login_page.locator('//span[text()="返回列表"]').is_visible():
print(f"进入第{index}个报表数据填报页面")
login_page.locator('//span[text()="返回列表"]').click()
login_page.locator('//div[@class="el-message-box__btns"]//span[contains(text(),"确定")]').click()
else:
print(f"未进入第{index}个报表数据填报页面")
print('循环结束')