有关python库
官方库
#1、导入某模块
import os
#2、导入OS模块中的system方法
from os import system
#3、导入某模块中的孙子模块中的xx方法,并重命名
from module.xx.xx import xx as rename
#4、导入OS中的所有模块
#不用进行OS.method(),直接method()
#但是不建议使用,因为会造成文件名混乱
from os import *
自建库
参考,有关sys.append()
- 使用sys.path.append()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。
当你写了个.py文件,想作为库在另一文件中使用
import my_first_mod
#my_first_mod.sayhi()
python程序中使用 import XXX 时,python解析器会在当前目录、已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错。
因此,还需要将此库的路径加入path,因为默认情况下,python导入文件或者模块,会在sys.path里找模块的路径。如果在当前搜索路径列表sys.path中找不到该模块的话,就会报错。
path里面存着这些路径,每次调用模块都会顺序搜索这些路径(以我现在的路径为例),其中第一行是进程所在的文件路径,每次运行都会把此路径添加进去,所以把库.py文件放在此文件夹下是可以找到的(跟进程.py并列)。
path=[‘d:\0.自主学习\Python基础\乱七八糟的知识点’,
‘E:\1.Tool\0.Miniconda3\python38.zip’,
‘E:\1.Tool\0.Miniconda3\DLLs’,
‘E:\1.Tool\0.Miniconda3\lib’,
‘E:\1.Tool\0.Miniconda3’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages\win32’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages\win32\lib’,
‘E:\1.Tool\0.Miniconda3\lib\site-packages\Pythonwin’, ]
sys.path的用法
- 向sys.path中添加搜索路径
import sys
sys.path.append(path) # path 代表的是一个路径
- 查看当前搜索路径
import sys
print(sys.path)
path=['**d:\\0.自主学习\\Python基础\\乱七八糟的知识点**',
'E:\\1.Tool\\0.Miniconda3\\python38.zip',
'E:\\1.Tool\\0.Miniconda3\\DLLs',
'E:\\1.Tool\\0.Miniconda3\\lib',
'E:\\1.Tool\\0.Miniconda3',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32\\lib',
'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\Pythonwin', ]
sys.path.append(os.pardir)
python中的__file__变量给出了.py文件的位置
#该函数文件为mnist_show.py
import sys, os
#pardir代表parent directory
sys.path.append(os.pardir)#load_mnist为dataset文件下的mnist.py中的函数
from dataset.mnist import load_mnist

mnist_show.py文件的当前工作目录为ch03,但是load_mnist()函数的mnist.py文件在dataset目录下。因此,mnist_show.py文件不可以跨文件直接导入mnist.py文件。
sys.path.append(os.pardir)语句实际上是把父目录deep-learning-from-scatch加入到sys.path(Python 的搜索目录模块的路径集中),从而可以导入deep-learning-from-scatch下的任何目录(包括dataset目录)中的任何文件。
【大胆推测】:因为路径添加的是…/deep-learning-from-scatch, 所以只能from dataset.mnist 而不是直接 import mnist
print(__file__)
打印之后,即可得到.py的位置d:\0.自主学习\Python基础\乱七八糟的知识点\2、自定义模块.py
常用的方法是结合os.path.abspath(os.path.dirname(file)),得到.py文件的所在目录的绝对路径,从而构造出同目录下另一文件的绝对路径
import os
basedir = os.path.abspath(os.path.dirname(__file__))
abs_path_to_another = (os.path.join(basedir,'another'))
总代码
#导入同级目录
import sys
import os
#file是此文件所在位置
_path=__file__
print(f'path={_path}')
#os.path.dirname()去掉最后一级
base_path=os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
print(f'base_path={base_path}')
print(f'path={sys.path}')
#将相对于此进程的上一级路径添加进path列表
sys.path.append(base_path)
print(f'添加后的path={sys.path}')
#这样再导入此路径下的库就不会报错了
import my_first_mod
#my_first_mod.sayhi()
path=d:\0.自主学习\Python基础\乱七八糟的知识点\2、自定义模块.pybase_path=d:\0.自主学习\Python基础path=['d:\\0.自主学习\\Python基础\\乱七八糟的知识点', 'E:\\1.Tool\\0.Miniconda3\\python38.zip', 'E:\\1.Tool\\0.Miniconda3\\DLLs', 'E:\\1.Tool\\0.Miniconda3\\lib', 'E:\\1.Tool\\0.Miniconda3', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32\\lib', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\Pythonwin'] 添加后的path=['d:\\0.自主学习\\Python基础\\乱七八糟的知识点', 'E:\\1.Tool\\0.Miniconda3\\python38.zip', 'E:\\1.Tool\\0.Miniconda3\\DLLs', 'E:\\1.Tool\\0.Miniconda3\\lib', 'E:\\1.Tool\\0.Miniconda3', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\win32\\lib', 'E:\\1.Tool\\0.Miniconda3\\lib\\site-packages\\Pythonwin', 'd:\\0.自主学习\\Python基础']
相关文章:
有关python库
官方库 #1、导入某模块 import os #2、导入OS模块中的system方法 from os import system #3、导入某模块中的孙子模块中的xx方法,并重命名 from module.xx.xx import xx as rename #4、导入OS中的所有模块 #不用进行OS.method(),直接method(࿰…...
java项目之电影网站(ssm框架)
项目简介 电影网站实现了以下功能: 登录模块用例中用户包括用户和管理员和二种角色,分别可以进行其对应的身份登录或取消登录,关闭系统。用户模块主要包括首页,电影信息,电影商城,社区交流,电…...
技术分享 | app自动化测试(Android)--触屏操作自动化
导入TouchAction Python 版本 from appium.webdriver.common.touch_action import TouchAction Java 版本 import io.appium.java_client.TouchAction; 常用的手势操作 press 按下 TouchAction 提供的常用的手势操作有如下操作: press 按下 release 释放 …...
Java连接数据库并查询表中的全部数据
1、导入相关jar包 这里创建简单的maven项目,我们导入相关的jar包 相关依赖: <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependenc…...
STM32存储左右互搏 SPI总线读写FLASH W25QXX
STM32存储左右互搏 SPI总线读写FLASH W25QXX FLASH是常用的一种非易失存储单元,W25QXX系列Flash有不同容量的型号,如W25Q64的容量为64Mbit,也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库操作W25Q各型号FLASH的例程。 W25QXX介绍 W25QX…...
【EI会议征稿】第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024)
第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024) 2024 4th International Conference on Computer Network Security and Software Engineering 第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024)将于2024年2月…...
解决pip 安装 pyhash错误
1 pip 安装 pyhash错误 Collecting pyhash (from Calvin0.0.1) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/f0/bf/4db9bed05d10824a17697f65063de19892ca2171a31a9c6854f9bbf55c02/pyhash-0.9.3.tar.gz (602 kB) Preparing metadata (setup.py) … error error:…...
解决 win11 vmware 中centos 网络不能访问外网
解决 win11 vmware 中centos 网络不能访问外网 1、进入win11 高级设置,找到centos 虚拟机使用的网卡 2、看网卡的其他属性 3、按照红圈部分,配置成一样的就行 4、进入到虚拟机配置中,配置成如图一样的NAT模式 5、再进入编辑 -》虚拟网络编辑…...
Flutter vs 前端 杂谈:SliverAppBar、手动实现Appbar、前端Html+JS怎么实现滚动变化型Appbar - 比较
Flutter vs 前端 杂谈 SliverAppBar的弹性背景的显隐效果使用HtmlJS怎么实现 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550…...
Qt 二维码生成与识别
1.简介 QZXing是一个基于Qt框架的二维码解码库,它是对ZXing(Zebra Crossing)开源项目的一个Qt封装。ZXing是一个功能强大的开源二维码解码库,支持多种类型的码,包括QR码、DataMatrix码、Aztec码等。 QZXing提供了一个…...
jacoco和sonar
目录 jacoco 引入依赖 构建配置修改 单元测试 生成报告 查看报告 报告说明 1. Instructions 2. Branches 3. Cyclomatic Complexity 4. Lines 5. Methods 6. Classes sonar7.7 基础环境 需要下载软件 解压文件并配置 运行启动 jacoco 引入依赖 <dep…...
Django系列之Serializer的source参数使用、自定义序列化方法
数据准备 models.py from django.contrib.auth.models import AbstractUser from django.db import modelsclass Publish(models.Model):name models.CharField(max_length32)city models.CharField(max_length8)email models.CharField(max_length32)def __str__(self):r…...
Java从入门到精通
Java从入门到精通 1. Java概述1.1 Java是什么1.2 为什么用Java1.3 Java能做什么1.4 Java技术体系平台2. Java快速入门2.1 Java开发环境的准备:JDK简介、安装、常用命令如何使用JavaJDK产品的发展史获取JDK如何验证能用javac和java其他常用命令行命令2.2 Java入门程序-HelloWor…...
电路布线问题动态规划详解(做题思路)
对于电路布线问题,想必学过动态规划的大家都很清除。今天就来讲解一下这个动态规划经典题目。 目录 问题描述输入分析最优子结构代码 问题描述 在一块电路板的上、下2端分别有n个接线柱。根据电路设计,要求用导 线(i,π(i))将上端接线柱与下端接线柱相…...
webpack 的 Loader 和 Plugin 的区别,常见的 loader 和 plugin 有哪些?
结论先行: 1、 Loader 和 Plugin 的区别 Loader 也叫做就是“加载器”,因为 webpack 原生只能解析 js 文件,而对于其他类型文件,则需要借助 loader。所以 loader 的作用就是实现对不同格式文件的解析和处理,例如把 E…...
云计算实战项目之---学之思在线考试系统
简介: 学之思开源考试系统是一款 java vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序,能覆盖到pc机和手机等设备。 支持多种部署方式:集成部署、前后端分离部署、docker部…...
研究生学术与职业素养讲座MOOC---期末复习(1-15)
目录 单选题多选题填空题判断题 单选题 我国制造科学与技术与工业发达国家相比的阶段性差距不包括:人工成本高不属于面向产业的学科:哲学哪个国际前沿本讲未提:纳米技术早期的科学研究不分学科是以达芬奇为例说的待遇不是管理者与领导者的区…...
kube-prometheus-stack监控k8s1.24+ docker缺少图像
1.24 中 cAdvisor 指标中缺少图像、名称和容器标签 由于 Kubernetes 1.24 已经从 cadvisor 中删除了 docker 插件,因此虽然可以使用 cri-dockerd 来适配容器运行时,但 cadvisor 无法获取有关图像标签等 docker 容器信息。进而导致 grafana 很多图像无数据。解决方法为对 pro…...
【C/PTA——循环结构3】
C/PTA——循环结构3 7-1 二分法求多项式单根1.题目要求2.代码实现 7-2 循环-十进制转化1.题目要求2.代码实现 7-3 梅森数1.题目要求2.代码实现 7-4 单词长度1.题目要求2.代码实现 7-5 21循环-求和31.题目要求2.代码实现 7-6 21循环-金字塔1.题目要求2.代码实现 7-7 循环-杨辉三…...
MAC设备(M1)环境下编译安装openCV for Java
最近发现一个需求,可以用openCV来实现,碰巧又新买了mac笔记本,就打算利用业余时间安装下openCV。这里将主要步骤记录下,希望能帮助有需要的人。 1、准备编译环境 #查询编译opencv相关依赖 brew info opencv查询结果如下图所示&a…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...
渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用
阻止除自定义标签之外的所有标签 先输入一些标签测试,说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时(如通过点击或键盘导航&…...
在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
