有关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基础']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/135959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RRC configured BWP

TS 38.822有UE BWP 相关能力 IE的详细介绍,如下图。 举例说明,对于UE上报bwp-SameNumerology=upto2时,根据上图中的描述,UE支持能力情况如下:每个carrier最多支持2 个UE specific RRC configured DL/UL BWPs;可以通过DCI和BWP-InactivityTimer主动切换BWP;每个carrier的…

Linux安装Python3.10与部署flask项目实战详细记录

java开发新手入门Python,创建flask后端服务对外提供访问.记录一下在阿里云服务器部署flask项目的操作过程,简单介绍一下使用的阿里云服务器系统配置:ubantu16.04,其他内核版本操作部分命令会有所区别,下面开始详细操作过程! 1.pycharm创建flask项目并打包 2.Python3.…

【React】04.MVC模式和MVVM模式

React是Web前端框架 1、目前市面上比较主流的前端框架 ReactAngular(NG框架)Vue 主流的思想: 不在直接去操作DOM,而是改为“数据驱动思想” 操作DOM思想: 操作DOM比较消耗性能[主要原因就是,可能会导…

基于开源项目OCR做一个探究(chineseocr_lite)

背景:基于图片识别的技术有很多,应用与各行各业,我们公司围绕电子身份证识别自动录入需求开展,以下是我的研究心得 技术栈:python3.6,chineseocr_lite的onnx推理 环境部署:直接上截图&#xff…

Linux shell编程学习笔记22: () $() (()) 的用法小结

最近学习Linux Shell编程,对 () (()) [] [[]]等符号的用法还是有点分不太清楚,于是决定再梳理一下。今天先整理 () $() (()) 的用法。 1 单小括号() 1.1 子shell(命令组) 括号中的命令将会新开一个子shell顺序执行,所…

基于nginx在视频播放器与服务器之间反向代理流程

1 服务器部署 由于我手里只有内网服务器,可以使用,因此在部署nginx代理服务器,使之在播放器和服务器之间实现反向代理并且缓存内容之前,需要做内网穿透,获得可与外界进行通信的地址。 如果想进行内网穿透,…

使用 AIGC ,ChatGPT 快速合并Excel工作薄

职场数据处理,数据分析汇报与统计的过程中,经常会遇到这样的一个问题那就是需要统计的数据源在多个文件中,多个工作薄中,如果要进行数据处理,汇总的时候会很不方便 例如: 如果要汇总6个月的数据可能就得需…

初步利用Ansible实现批量服务器自动化管理

1.Ansible介绍 Ansible是一款开源的自动化运维工具, 在2012年由Michael DeHaan创建, 现在由Red Hat维护。Ansible是基于Python开发的,采用YAML语言编写自动化脚本playbook, 可以在Linux、Unix等系统上运行, 通过SSH协议管理节点, 无需在被管理节点安装agent。Ansible以其简单、…

6-爬虫-scrapy解析数据(使用css选择器解析数据、xpath 解析数据)、 配置文件

1 scrapy解析数据 1.1 使用css选择器解析数据 1.2 xpath 解析数据 2 配置文件 3 整站爬取博客–》爬取详情–》数据传递 scrapy 爬虫框架补充 # 1 打码平台---》破解验证码-数字字母:ddddocr-计算题,滑块,成语。。。-云打码,超…

AI:69-基于深度学习的音乐推荐

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

索引和事务

文章目录 一、索引1.1 概念1.2 作用1.3 使用场景1.4 使用 二、事务2.1 为什么要使用事务2.2 事务的概念2.3 事务的使用 三、内容重点总结 一、索引 1.1 概念 索引是一种特殊的文件,包含对数据表所有记录的引用指针。在MySQL中,索引是基于一个或多个列的…

【紫光同创国产FPGA教程】——PDS安装教程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 一:软件简介 PangoDesign Suite是紫光同创基于多年FPGA开发软件技术攻关与工程实践经验而研发的一款拥有国产自主知识产权的大规模FPGA开…

Redis系列-Redis过期策略以及内存淘汰机制【6】

目录 Redis系列-Redis过期策略以及内存淘汰机制【6】redis过期策略内存淘汰机制算法LRU算法LFU 其他场景对过期key的处理FAQ为什么不用定时删除策略? Ref 个人主页: 【⭐️个人主页】 需要您的【💖 点赞关注】支持 💯 Redis系列-Redis过期策略以及内存淘…

18 CDN详解

1、理解CDN 1.CDN 和电商系统的分布式仓储系统一样,就近发货给客户(客户端),所以,必然是提前在仓库中存储了某些商品. 2.CDN最擅长的是缓存静态数据,比如电商系统的热点静态页面,秒杀场景的页面等.问题:向…

快手快速涨粉的方法,自动涨粉软件的开发分享与实操分享

先来看视频实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 一、引言 随着互联网的飞速发展,快手已经成为了许多人分享生活、展示才艺的平台。在快手上,如果你想要快速涨粉,就需要掌握一些技巧和方法…

计算机网络实验

计算机网络实验 使用软件PT7.0按照上面的拓扑结构建立网络,进行合理配置,使得所有计算机之间能够互相通信。并且修改各交换机的系统名称为:学号_编号,如你的学号为123,交换机Switch0的编号为0,则系统名称为…

前端Vue 页面滑动监听 拿到滑动的坐标值

前言 前端Vue 页面滑动监听 拿到滑动的坐标值 实现 Vue2写法 mounted() {// 监听页面滚动事件window.addEventListener("scroll", this.scrolling);}, methods: { scrolling() {// 滚动条距文档顶部的距离let scrollTop window.pageYOffset ||document.documentE…

如何使用Node.js快速创建HTTP服务器并实现公网访问本地Server

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

Redis系列-Redis数据类型【3】

目录 Redis系列-Redis数据类型【3】字符串类型(String)SDS (simple dynamic string) 哈希类型(Hash)列表类型(List)集合类型(Set)有序集合类型(ZSet)字符串类…

【JavaEE】HTTP协议(什么是HTTP?、HTTP格式、form表单和ajax构造HTTP)

一、什么是HTTP协议? 1.1 HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议 1.2 理解HTTP协议的工作过程 当我们在浏览器中输入一个 “网址”, 此时浏览器就会给对应的服务器发送一个 HTTP 请求. 对方服务器收到这个请求之后, 经过计算处理, 就…