当前位置: 首页 > news >正文

【Python】路径(绝对路径、相对路径,当前工作目录),模块搜索路径(添加),Python安装路径,补充:cmd(命令行窗口)运行Python文件

Python中经常用到路径,比如:文件路径(读取文件,保存文件等),模块搜索路径(导入其他模块),Python安装路径。

而路径有两种:绝对路径,相对路径。在当前工作目录下的文件可使用相对路径,不在当前工作目录下必须使用绝对路径,否则会报错或者找到错误文件。

Python导入其他模块并使用其函数或类方法时,Python默认会去模块搜索路径中搜索导入的模块,若不在搜索路径则报错。可以临时或永久的添加到模块搜索路径。

在Windows系统中可使用cmd(命令行窗口)通过python命令运行python文件(涉及安装目录配置环境变量,相对路径、绝对路径)。

注:文件夹即目录,一个python文件(扩展名.py)即一个模块

所以,本文主要内容:

  1. 简单介绍绝对路径和相对路径,如何获取或修改当前工作目录,判断是否是绝对路径,相对路径如何转为/拼接为绝对路径。
  2. 查看默认模块搜索路径,如何临时或永久的将自己的目录添加到模块搜索路径中。
  3. 如何获取python安装路径。
  4. 补充:Windows系统中如何使用cmd运行python文件。


绝对路径、相对路径

① 绝对路径:也是完整路径。

  • Windows系统中是从各盘符开始的完整路径(例如:E:\Program Files (x86)\python\Lib\site-packages)。
  • Linux系统中是从根目录开始的完整路径(例如:/usr/bin/python3)。

② 相对路径:相对于当前工作目录的路径。

  • 例如:若当前工作目录为:E:\Program Files (x86)\python。完整路径 E:\Program Files (x86)\python\Lib\site-packages,其相对路径为 Lib\site-packages。

当前工作目录

当前工作目录是当前python运行时所处的目录,是相对路径的参照点。

获取当前工作目录:

import os
os.getcwd()

修改当前工作目录:

os.chdir(新工作目录)

判断是否是绝对路径

os.path.isabs(路径)

相对路径转为绝对路径

# 直接转为绝对路径
os.path.abspath(相对路径)

# 拼接路径, 返回绝对路径
os.path.join(os.getcwd(), 相对路径)


Python文件经常需要使用其他模块的函数或类的方法,需要在文件开头导入相应的模块,python会去模块搜索路径下查找该模块文件,若没有找到该模块,则会报错。也可以导入自己写的模块,但该模块不一定在默认的模块搜索路径下,也因此不一定导入成功。

查看模块搜索路径

import sys
sys.path

我把自己写的python文件放在自己的目录下(G:\Python\my_modules\normal),该目录下有个python文件total.py,内容为一个简单加法运算(total函数)。目前该目录不在默认的模块搜索路径中,则无法导入该目录下的total模块,也无法使用模块中的total函数。

 

将自己的目录添加到模块搜索路径中

可将自己的目录添加到模块搜索路径中,其他python文件就可以导入该模块,使用该模块下的函数等。可临时添加,也可永久添加。

临时添加到模块搜索路径:

注:只在当前运行的python程序中有效,程序结束路径失效。若是IDE,则当前IDE有效,打开的其他IDE无效,当前IDE关闭后重新打开也失效。

sys.path.append(需要添加的目录)

永久添加到搜索路径:

  1. 找到python安装路径下的site-packages目录:E:\Program Files (x86)\python\Lib\site-packages。
  2. 新建PTH文件。若已新建过该文件,可直接往PTH文件中添加。
  3. 将需要添加的目录(G:\Python\my_modules\normal)输入到该PTH文件中。【注:一行一个路径】

注:python会自动读取PTH文件,并将文件中的路径添加到sys.path。


Python安装路径

获取Python安装路径:

import sys
sys.executable


补充:Windows系统下可使用cmd(命令行窗口)运行Python文件

  • 在Python文件所在目录下,可使用相对路径 运行Python文件。
  • 在其他目录下,使用完整路径 运行Python文件。

注:在任意目录下使用python命令运行Python文件,需将python安装目录添加到环境变量。

  1. 获取python安装路径(sys.executable)。
  2. 将python安装目录添加到环境变量。

相关文章:

【Python】路径(绝对路径、相对路径,当前工作目录),模块搜索路径(添加),Python安装路径,补充:cmd(命令行窗口)运行Python文件

Python中经常用到路径,比如:文件路径(读取文件,保存文件等),模块搜索路径(导入其他模块),Python安装路径。 而路径有两种:绝对路径,相对路径。在…...

Oceanbase 透明加密TDE

官方文档:数据库透明加密概述-V4.3.2-OceanBase 数据库文档-分布式数据库使用文档 OceanBase 数据库社区版暂不支持数据透明加密。 数据存储加密是指对数据和 Clog 等保存在磁盘中的数据进行无感知的加密,即透明加密(简称 TDE)。…...

图像去噪实验:基于全变分(TV)模型的MATLAB实现

一、背景 全变分模型在图像处理领域中被广泛用于去除噪声,同时保持图像边缘的清晰度。 二、实验步骤 图像的读取、噪声添加、去噪处理以及结果的显示。 三、实验仿真结果图 四、结论 全变分模型是一种有效的图像去噪方法,它能够在去除噪声的同时&#…...

97.WEB渗透测试-信息收集-Google语法(11)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:96.WEB渗透测试-信息收集-Google语法(10) 2 、找上传类漏洞地址&…...

连锁美业门店如何寻找精准客户?美业SaaS拓客系统管理系统源码

连锁美业门店要寻找精准客户,可以采取多种方法结合现实因素进行推广和营销。以下是博弈美业系统给出的一些建议: 1.定位目标客户群体: 首先,门店需要确定目标客户是谁。这可能包括年龄、性别、收入水平、生活方式以及消费习惯等…...

RK3588开发板利用udp发送和接收数据

目录 1 send.cpp 2 receive.cpp 3 编译运行 4 测试 1 send.cpp #include <iostream> #include <string> #include <cstring> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> //…...

代码整洁之道(第3章节)--函数

目录 3.1 短小 3.2 只做一件事 3.3 每个函数一个抽象层级 3.4switch语句 3.5 使用描述性的名称 3.6 函数参数 3.6.1 一元函数的普遍形式 3.6.2标识参数 3.6.3 二元函数 3.6.4 三元函数 3.6.5参数对象 3.6.6参数列表 3.6.7动词与关键字 3.8分隔指令与询问 3.9使用…...

92. UE5 GAS RPG 使用C++创建GE实现灼烧的负面效果

在正常游戏里&#xff0c;有些伤害技能会携带一些负面效果&#xff0c;比如火焰伤害的技能会携带燃烧效果&#xff0c;敌人在受到伤害后&#xff0c;会接受一个燃烧的效果&#xff0c;燃烧效果会在敌人身上持续一段时间&#xff0c;并且持续受到火焰灼烧。 我们将在这一篇文章里…...

Echarts可视化大屏数据详解

1、ECharts介绍 1.1、什么是ECharts ECharts是一款由百度开发并开源的数据可视化图表库&#xff0c;旨在帮助开发者通过简单易用的方式实现复杂的数据展示和分析需求。它完全基于 JavaScript 开发&#xff0c;利用 HTML5 的 Canvas 技术进行图形渲染&#xff0c;这使得它能够…...

Linux---文件(2)---文件描述符缓冲区(语言级)

目录 文件描述符 基础知识 文件描述符 对“Linux一切皆文件”的理解 文件描述符分配规则 缓冲区 刷新策略 存放位置 解释一个"奇怪的现象" 格式化输入输出 文件描述符 基础知识 在系统层面上&#xff0c;文件操作都是通过文件描述符来操作的。 程序在启…...

云计算实训39——Harbor仓库的使用、Docker-compose的编排、YAML文件

一、Harbor部署 1.验证python版本 [rootdocker2 ~]#python --version 2.安装pip [rootdocker2 ~]# yum -y install python2-pip #由于版本过低&#xff0c;需要对其进行一个升级 #更新pip [rootdocker2 ~]#pip install --upgrade pip 3.指定版本号 [rootdocker2 ~]# p…...

lambda表达式用法——C#学习笔记

“Lambda 表达式”是一个匿名函数&#xff0c;它可以包含表达式和语句&#xff0c;并且可用于创建委托或表达式目录树类型。 实例如下&#xff1a; 代码如下&#xff1a; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.…...

【C++ Primer Plus习题】11.6

问题: 解答: main.cpp #include <iostream> #include "Stonewt.h" using namespace std; const int SIZE 6;int main() {Stonewt stone_arr[SIZE] { 253.6,Stonewt(8,0.35),Stonewt(23,0) };double input;Stonewt eleven Stonewt(11, 0.0);Stonewt max st…...

Redis八种数据结构简介

Redis数据结构 Redis新旧版本中一共出现过八种数据结构&#xff0c;分别是SDS、双向链表、压缩列表、整数集合、哈希表、跳表、quicklist、listpack。 SDS SDS是用于存储Redis中字符串的数据结构&#xff0c;Redis底层使用的语言是C语言&#xff0c;因此字符串也是C语言的字…...

数据治理策略:确保数据资产的安全与高效利用

数据治理策略&#xff1a;确保数据资产的安全与高效利用 在数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;随着数据量的爆炸性增长和数据来源的多样化&#xff0c;如何有效地管理和利用这些数据成为企业面临的重要挑战。数据治理策略的制定和执行&a…...

ts格式转mp4,四款亲测好用软件推荐!

在这个数字视频时代&#xff0c;我们经常会遇到各种视频格式兼容性问题&#xff0c;尤其是从网络下载的高清电影或电视剧集&#xff0c;很多时候都是以TS格式存储。然而&#xff0c;当我们想要在移动设备、社交媒体或视频编辑软件中播放、上传时&#xff0c;MP4格式因其广泛的兼…...

10、Django Admin修改标题

admin from django.contrib import admin from .models import Category, Origin, Hero, Villain # 添加以下代码 admin.site.site_header "系统管理" admin.site.site_title "管理员界面" admin.site.index_title "欢迎来到这里&#xff…...

ESRI ArcGIS Pro 3.1.5新功能及安装教程和下载

ESRI ArcGIS Pro 3.1.5 主要新功能包括&#xff1a; 改进的数据编辑和管理&#xff1a;支持更多数据格式和更精细的属性表操作。增强的空间分析工具&#xff1a;新增和优化空间分析工具&#xff0c;提高数据分析效率。更好的3D可视化&#xff1a;改进3D渲染性能&#xff0c;支…...

人工智能,语音识别也算一种人工智能。

现在挺晚了&#xff0c;还是没有去睡觉&#xff0c;自己在想什么呢&#xff0c;也不确定。 这是一篇用语音写的文章&#xff0c;先按自己的想法说出来&#xff0c;然后再适当修改&#xff0c;也许就是一个不错的文章。 看来以后就不需要打字了&#xff0c;语音识别度很高&#…...

Token和Refresh Token

获取令牌&#xff08;Token&#xff09; 和 刷新令牌(Refresh Token&#xff09; 在认证和授权机制中有不同的使用场景和目的&#xff0c;二者主要的区别和为什么需要刷新令牌可以通过以下几点解释&#xff1a; 1. 获取令牌和刷新令牌的区别 获取令牌&#xff08;Token&#x…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...