上次的路径问题还没解决就被勒索病毒的木马器给搞了两周多, 拖拖拖到现在又开始纠结路径问题...还是学习能力不足啊...

补充一下路径问题的知识, 毕竟jupyter notebookIDE测试的时候有不同的结果, 是不是换个更好的IDE来测试避免这种基础问题比较好呢?

第一种

#!/usr/bin/env Python3
# -*- coding:utf-8 -*- import os
# 当前文件的完整路径名:C:\study\memo\core\text.py print(os.path.dirname(os.path.dirname(__file__))) # 获取当前文件所在目录的上级目录:c:\study\memo
print(os.path.dirname(__file__)) # 获取当前文件所在目录:c:\study\memo\core
print(os.getcwd()) # 获取当前运行的目录:C:\study
print(os.path.dirname(r'd:\downloads')) # 获取指定目录的上级目录:d:\ print(f"获取** 相对** 路径".center(50, "*"))
print(os.path.basename(__file__)) # 获取当前文件名称:text.py
print(os.path.basename(r'd:\downloads')) # 获取指定目录的相对路径,即当前目录名:downloads print(f"获取** 绝对 **路径".center(50, "*"))
print(os.path.abspath(__file__)) # 获取当前文件的绝对路径:c:\study\memo\core\text.py
print(os.path.abspath(r'd:\downloads')) # 获取指定目录的绝对路径:d:\downloads

第二种, file前面加了个abspath

#!/usr/bin/env Python3
# -*- coding:utf-8 -*- import os
# 当前文件的完整路径名:C:\study\memo\core\text.py print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# 获取当前文件所在目录的上级目录:c:\study\memo print(os.path.dirname(os.path.abspath(__file__))) # 获取当前文件所在目录:c:\study\memo\core
print(os.getcwd()) # 获取当前运行的目录:C:\study
print(os.path.dirname(r'd:\downloads')) # 获取指定目录的上级目录:d:\ print(f"获取** 相对** 路径".center(50, "*"))
print(os.path.basename(__file__)) # 获取当前文件名称:text.py
print(os.path.basename(r'd:\downloads')) # 获取指定目录的相对路径,即当前目录名:downloads print(f"获取** 绝对 **路径".center(50, "*"))
print(os.path.abspath(__file__)) # 获取当前文件的绝对路径:c:\study\memo\core\text.py
print(os.path.abspath(r'd:\downloads')) # 获取指定目录的绝对路径:d:\downloads

刚开始学习的时候常常会不清楚运行的路径,多测试一下多print一下没坏处

上一篇

python文件的路径问题补充上一篇内容的更多相关文章

  1. python文件及路径管理函数

    glob模块 说明: 1.glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索, 支持通配符操作 *.?.[] 这三个通配符,*代表0 ...

  2. python 文件和路径操作函数小结

    1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir('..') 2: os.path.walk( ...

  3. Python文件操作,with open as追加文本内容实例

    最常见的读写操作 import re with open('/Users/Mr.Long/Desktop/data.txt', 'w') as f: f.write('hello world') 就这 ...

  4. 评论抓取:Python爬取微信在APPStore上的评论内容及星级

    #完整程序如下: import requests import re def getHTMLText(url): try: r = requests.get(url) r.raise_for_stat ...

  5. ie下获取上传文件全路径

    ie下获取上传文件全路径,3.5之后的火狐是没法获取上传文件全路径的 /*获取上传文件路径*/ function getFilePath(obj) { var form = $(this).paren ...

  6. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  7. python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)

    一.模块的循环导入问题 run.py # import m1 # 第一次导入 m1.py # 错误示范 ''' print('正在导入m1') from m2 import y #第一次导入m2 x= ...

  8. python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)

    一.昨日作业讲解 先来回顾一下昨日的内容 1.os模块 和操作系统交互 工作目录 文件夹 文件 操作系统命令 路径相关的 2.模块 最本质的区别 import会创建一个专属于模块的名字, 所有导入模块 ...

  9. python使用os.listdir和os.walk获得文件的路径

    python使用os.listdir和os.walk获得文件的路径   目录 情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir 情况2:递归的情况,一个目录下面既有目录 ...

随机推荐

  1. finalize()与PhantomReference学习笔记

    众所周知,Java语言提供了自动垃圾回收机制,使得程序员不用考虑自己释放不再使用的内存.既然回收内存的活都让Java自己干了,程序员在这方面能干的事情就不多了.尽管如此,Java也提供了一些让程序员对 ...

  2. ConcurrentHashMap扩容

    然后,说说精华的部分. Cmap 支持并发扩容,实现方式是,将表拆分,让每个线程处理自己的区间.如下图:     假设总长度是 64 ,每个线程可以分到 16 个桶,各自处理,不会互相影响. 而每个线 ...

  3. Flink 核心技术浅析(整理版)

    1. Flink简介 Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink流执行引擎(streaming dataflow engine),提供支 ...

  4. python 生产者 --- 消费者

    值得拿出来 看看的 多进程 爬取 (生产) , 解析 (消费) 网页 同时进行,可以作为以后项目扩展使用 from bs4 import BeautifulSoup import requests i ...

  5. SQL数字型注入代码审计

    数字型注入 SQL注入攻击,简称注入攻击,是发生于应用程序与数据库层的安全漏洞. 简而言之,是在输入的字符串之中注入sql指定,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器 ...

  6. windows service创建使用整合

    C#创建Windows Service(Windows 服务)基础教程 C#winform windows服务程序创建与安装 C#实现WinForm随WINDOWS服务一起启动

  7. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  8. UOJ #310「UNR #2」黎明前的巧克力

    神仙题啊... UOJ #310 题意 将原集合划分成$ A,B,C$三部分,要求满足$ A,B$不全为空且$ A$的异或和等于$ B$的异或和 求方案数 集合大小 $n\leq 10^6$ 值域$v ...

  9. java 中final关键字

    1.final变量,一旦该变量被设定,就不可以再改变该变量的值. final关键字定义的变量必须声明时赋值.一旦一个对象引用被修饰为final后,它只能恒定指向一个对象,一个既是static和fina ...

  10. day08 文件操作

    1.三种字符串: (1)u'' 普通字符串 ---> u'abc' ---> 默认的文本方式,以字符作为文本的输出方式 (2)b'' 二进制字符串 ---> b'ASCII码' -- ...