-
2020-11-24 00:28:38
一. Python 获取当前文件路径方法
2. sys.path[0]
获取文件当前工作目录路径(绝对路径)
sys.argv[0]|获得模块所在的路径(由系统决定是否是全名)
若显示调用python指令,如python demo.py,会得到绝对路径;
若直接执行脚本,如./demo.py,会得到相对路径。
3. __ file __
获得文件所在的路径(由系统决定是否是全名)
若显示执行Python,会得到绝对路径;
若按相对路径来直接执行脚本./pyws/path_demo.py,会得到相对路径。
4. os.path.abspath(__ file __)
获得文件所在的路径(绝对路径)
6. os.path.split(os.path.realpath(__ file __))
将文件路径名称分成头和尾一对,生成二元元组。(文件目录,文件名)
https://docs.python.org/2/library/os.path.html#os.path.split
二. 举个栗子
1. Source code
import os
import sys
print("sys.path[0] = ", sys.path[0])
print("sys.argv[0] = ", sys.argv[0])
print("__file__ = ", __file__)
print("os.path.abspath(__file__) = ", os.path.abspath(__file__))
print("os.path.realpath(__file__) = ", os.path.realpath(__file__))
print("os.path.dirname(os.path.realpath(__file__)) = ",
os.path.dirname(os.path.realpath(__file__)))
print("os.path.split(os.path.realpath(__file__)) = ",
os.path.split(os.path.realpath(__file__)))
print("os.path.split(os.path.realpath(__file__))[0] = ",
os.path.split(os.path.realpath(__file__))[0])
print("os.getcwd() = ", os.getcwd())
2. Result
(1) Pycharm project中显示调用python指令,获取文件绝对路径
C:\Python364\python.exe C:/PyCharm/PycharmProject/get_path/path_demo.py
sys.path[0] = C:\PyCharm\PycharmProject\get_path
sys.argv[0] = C:/PyCharm/PycharmProject/get_path/path_demo.py
__file__ = C:/PyCharm/PycharmProject/get_path/path_demo.py
os.path.abspath(__file__) = C:\PyCharm\PycharmProject\get_path\path_demo.py
os.path.realpath(__file__) = C:\PyCharm\PycharmProject\get_path\path_demo.py
os.path.dirname(os.path.realpath(__file__)) = C:\PyCharm\PycharmProject\get_path
os.path.split(os.path.realpath(__file__)) = ('C:\\PyCharm\\PycharmProject\\get_path', 'path_demo.py')
os.path.split(os.path.realpath(__file__))[0] = C:\PyCharm\PycharmProject\get_path
os.getcwd() = C:\PyCharm\PycharmProject\get_path
Process finished with exit code 0
(2)Terminal中直接执行Python脚本,获取文件相对路径
C:\PyCharm\PycharmProject\get_path>python path_demo.py
('sys.path[0] = ', 'C:\\PyCharm\\PycharmProject\\get_path')
('sys.argv[0] = ', 'path_demo.py')
('__file__ = ', 'path_demo.py')
('os.path.abspath(__file__) = ', 'C:\\PyCharm\\PycharmProject\\get_path\\path_demo.py')
('os.path.realpath(__file__) = ', 'C:\\PyCharm\\PycharmProject\\get_path\\path_demo.py')
('os.path.dirname(os.path.realpath(__file__)) = ', 'C:\\PyCharm\\PycharmProject\\get_path')
('os.path.split(os.path.realpath(__file__)) = ', ('C:\\PyCharm\\PycharmProject\\get_path', 'path_demo.py'))
('os.path.split(os.path.realpath(__file__))[0] = ', 'C:\\PyCharm\\PycharmProject\\get_path')
('os.getcwd() = ', 'C:\\PyCharm\\PycharmProject\\get_path')
三. 参考
更多相关内容 -
Idea按路径导出文件
2019-03-28 16:18:48 -
Python学习笔记读写文件之文件与文件路径
2020-11-20 22:56:52#------------------------------------------------我是可耻的分割线-------------------------------------------文件有两个关键属性:“文件名”(通常写成一个单词)和“路径”。路径指明了文件在计算机上的位置...随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
文件有两个关键属性:“文件名”(通常写成一个单词)和“路径”。路径指明了文件在计算机上的位置。例如,我的 Windows 7 笔记
本上有一个文件名为projects.docx,它的路径在C:\Users\asweigart\Documents。文件名中,最后一个句点之后的部分称为文件的“扩展
名”,它指出了文件的类型。project.docx 是一个Word 文档,Users、asweigart和 Documents 都是指“文件夹”(也成为目录)。文件夹
可以包含文件和其他文件夹。例如,project.docx 在Documents 文件夹中,该文件夹又在asweigart 文件夹中,asweigart文件夹又在Users
文件夹中。路径中的 C:\部分是“根文件夹”,它包含了所有其他文件夹。在 Windows 中,根文件夹名为 C:\,也称为 C:盘。在 OS X 和
Linux 中,根文件夹是/。
#------------------------------------------------我是可耻的分割线-------------------------------------------
在文件夹层次结构中的一个文件:
1、Windows 上的倒斜杠以及 OS X 和 Linux 上的正斜杠
在Windows上,路径书写使用到斜杠作为文件夹之间的分隔符。但在OSX和Linux上,使用正斜杠作为它们路径的分隔符。如果想要
程序运行在所有操作系统上,在编写Python脚本时,就必须处理这两种情况。
好在,用os.path.join()函数来做这件事很简单。如果将单个文件和路径上的文件夹名称的字符串传递给它,os.path.join()就会返回一个
文件夹路径的字符串,包含正确的路径分隔符。
示例代码:
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#把文件名称传递给os.path.join()函数
path_file = os.path.join('usr', 'bin', 'spam')
#打印文件路径
print(path_file)
运行结果:
如果需要创建文件名称的字符串,os.path.join()函数就很有用。这些字符串将传递给几个文件相关的函数,本章将进行介绍。例如,下面的
例子将一个文件名列表中的名称,添加到文件夹名称的末尾。
示例代码:
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#定一个列表,存放文件名
myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
#循环文件名
for filename in myFiles:
#使用os.path.join()函数,把文件名作为第二个参数加上地址
print(os.path.join('C:\\Users\\asweigart', filename))
运行结果;
2、当前工作目录
每个运行在计算机上的程序,都有一个“当前工作目录”,或cwd。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。利用os.getcwd()函数
,可以取得当前工作路径的字符串,并可以利用os,chdir()改变它。
利用os.getcwd()函数获取当前工作目录,示例代码:
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#利用os.getcwd()函数,获取当前工作路径
print(os.getcwd())
运行结果:
利用os.chdir()函数改变当前工作目录,示例代码:
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#利用os.getcwd()函数,获取当前工作路径
print(os.getcwd())
#利用os.chdir(),改变当前目录
os.chdir('D:\\360Downloads\\Software')
#打印改变后的,当前目录
print(os.getcwd())
运行结果:
3、绝对路径与相对路径
有两种方法指定一个文件路径。
(1)“绝对路径”,总是从根文件夹开始。
(2)相对路径,它相对于程序的当前工作目录。
还有点(.)和点点(..)文件夹。它们不是真正的文件夹,而是可以在路径中使用的特殊名称。单个的句点(‘点’)用作文件夹名称时,是‘这个目录’的缩写
。两个句点(‘点点’)意思是父级文件夹。
下图是一些文件夹和文件的例子。如果当前工作目录设置为 C:\bacon,这些文件夹和文件的相对目录,就设置为下图所示的样子。
4、用os.makedirs()创建新文件夹,示例代码:
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#利用os.makedirs()函数,创建新的文件夹
os.makedirs('D:\\Users\\Administrator')
运行结果:
5、os.path模块
os.path模块包含了许多与文件名和文件路径相关的有用函数。例如,你已经使用了os.path.join()来构建所有操作系统上都有效的路径。
因为os.path是os模块中的模块,所以只要执行import os就可以导入它。如果你的程序需要处理文件、文件夹或文件路径,就可以使用os模块。
6、处理绝对路径和相对路径
os.path模块提供了一些函数,返回一个相对的绝对路径,以及检查给定的路径是否为绝对路径。
(1)调用os.path.abspath(path),将返回参数的绝对路径的字符串。这就是相对路径转换为绝对路径的简单方法。
os.path.abspath()函数,示例代码:
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#利用os.path.abspath()函数,取得当前工作目录的绝对路径(.句点表示为当前路径)
print(os.path.abspath('.'))
#利用os.path.abspath()函数,取得当前工作目录父级的绝对路径(..两个句点表示为当前路径的父级目录)
print(os.path.abspath('..'))
运行结果;
(2)调用os.path.isabs(path),如果参数是一个绝对路径,就返回True,如果参数是一个相对路径,就返回False。
os.path.isabs()函数,示例代码
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#利用os.path.isabs()函数,判断当前为绝对路径还是相对路径,传入绝对路径,返回True
print(os.path.isabs('C:\\Users\Administrator\PycharmProjects\test'))
#利用os.path.isabs()函数,判断当前为绝对路径还是相对路径,传入相对路径,返回False
print(os.path.isabs('.'))
#利用os.path.isabs()函数,判断当前为绝对路径还是相对路径,传入相对路径,返回False
print(os.path.isabs('..'))
运行结果:
(3)调用os.path.relpath(path,start)将返回从start路径到path的相对路径的字符串。如果没有提供 start,就使用当前工作目录作为开始路径。
os.path.relpath() 函数,示例代码:
#导入os模块
import os
print(os.path.relpath('C:\\Windows', 'C:\\'))
print(os.path.relpath('C:\\Users\Administrator\\PycharmProjects\\test', 'C:\\Users\\Administrator'))
运行结果:
7、查看文件大小和文件内容
一旦有办法处理文件路径,就可以开始搜集特定文件和文件夹的信息。os.path 模块提供了一些函数,用于查看文件的字节数以及给定文件夹中的文件
和子文件夹。
(1)调用 os.path.getsize(path)将返回 path 参数中文件的字节数。
os.path.getsize()函数,示例代码:
#利用os.path.getsize()函数,获取路径下所有文件的大小
print(os.path.getsize('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写'))
#利用os.path.getsize()函数,获取路径下指定文件的大小
print(os.path.getsize('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\Create_Folder.py'))
运行结果:
(2)调用os.listdir(path)将返回文件名字符串的列表,包含path参数中的每个文件(这个函数在os模块中,而不是os.path)
os.listdir()函数,示例代码:
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#利用os.listdir()函数,获取路径下的所有文件,并返回一个列表值
print(os.listdir('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写'))
运行结果;
8、检查路径的有效性
如果你提供的路径不存在,许多 Python 函数就会崩溃并报错。os.path 模块提供了一些函数,用于检测给定的路径是否存在,以及它是文件还是文件夹。
(1)如果path参数存在,并且是一个文件或文件夹存在,调用os.path.exists(path)将返回True,否则返回False.
os.path.exists()函数,示例代码:
#导入os模块
import os
#利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
print(os.path.exists('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写'))
#利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
print(os.path.exists('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\Create_Folder.py'))
#利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
print(os.path.exists('C'))
#利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
print(os.path.exists('Create_Folder.py'))
运行结果:
(2)如果path参数存在,并且是一个文件,调用os.path.isfile(path)将返回True,否则返回False.
#导入os模块
import os
#利用os.path.isfile()函数,判断是否为文件,是返回True,否则返回False.
#文件夹
print(os.path.isfile('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写'))
#文件
print(os.path.exists('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\Create_Folder.py'))
#字符
print(os.path.exists('C'))
#数字
print(os.path.exists('1'))
运行结果:
(3)如果path参数存在,并且是一个文件夹,调用os.path.isdir(path)将返回True,否则返回False.
#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
#导入os模块
import os
#利用os.path.isdir()函数,判断是否为文件,是返回True,否则返回False.
#文件夹
print(os.path.isdir('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写'))
#文件
print(os.path.isdir('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\Create_Folder.py'))
#字符
print(os.path.isdir('C'))
#数字
print(os.path.isdir('1'))
运行结果:
-
Python读取相对路径文件
2019-04-09 10:35:50xxx.py想打开的是b_file下的文件,XXX.py和b_file都在文件目录之下,两者是同级目录,因此操作就是在当前目录向下搜索,因此就可以很容易理解下面的意思了 特别提示:… \是错误的,打开的是上级目录 with open...例如下图目录结构:
第一种情况:
-
1)xxx.py想要打开a.txt,使用相对路径,有如下两种方式:
-
思路:
xxx.py想打开的是b_file下的文件,XXX.py和b_file都在文件目录之下,两者是同级目录,因此操作就是在当前目录向下搜索,因此就可以很容易理解下面的意思了
-
特别提示:… \是错误的,打开的是上级目录
with open(r"b_file\a.txt","r") as file: with open(r".\b_file\a.txtx", "r") as file:
-
2)ab.py尝试打开b_file下的a.txt,应该怎么写:
-
思路,首先要定位到上级目录,在上级目录下找到b_file下的.TXT
with open(r"..\b_file\aa.txt", "r") as f: print(f.read())
-
最后:如果想要使用绝对路径也很简单:
-
xxx.py打开b_file下的a.txt中,我们可以使用OS库,获取到xxx.py的当前路径,再然后通过组合的方式电子杂志到绝对路径。
当然还可以分成两部,使用os.path.join(路径,PATH1)进行两个路径的自动合并,去获取到完整的路径,也是可行的。
import os path = os.getcwd()#获取当前路径 with open(path+".\b_file\a.txt", "r") as file: import os path = os.getcwd() a_path = os.path.join(path, "b_file/a.txt") print(a_path)
- 从下级目录向上级目录合并,也是可以使用加入方法实现的
os.path.abspath(os.path.join(path, ".."))
-
-
linux中查看某文件的完整路径
2021-08-03 11:46:23我们知道在linux中用pwd可以查看当前文件所在路径,如果向查看某一文件的完整路径可以使用如下命令: realpath file 则可以查看到file的完整路径。 -
java本地文件路径怎么写
2021-02-12 19:28:281. java里文件路径怎么写File file = new File("D:\\123.txt");你这种不用绝对路径是不行的,只有一个方法,在web工程启动servlet中获取到webroot路径,在servlet的init中使用String webRoot = getServletContext().... -
python怎么获取当前文件路径
2020-11-24 00:28:45Python获取当前路径的方法:import os,sys使用sys.path[0]、sys.argv[0]、os.getcwd()、os.path.abspath(__file__)、os.path.realpath(__file__)sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv... -
mac下查找文件完整路径
2018-07-25 11:55:01查找文件完整路径分两种情况: 不知道文件的位置,只知道文件的名称,想查看文件在哪个路径下; 知道文件的位置和名称,想查看文件的完整路径。 第一种情况可以用find命令查找,举例如下(在/Users/liqing/路径... -
【Linux】Linux根据文件路径查找索引节点
2018-08-07 18:41:47操作系统的文件管理系统的主要作用就是,当用户需要访问一个文件时,系统可以通过用户给出的文件路径找到文件的索引节点,从而找到文件,并以文件对象的实例交付给用户进程。下面就以系统调用open()为例来说明文件的... -
linux查找文件路径
2019-04-19 16:31:121.linux查找可执行文件路径 which命令 例如: 注意:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 查看环境变量:echo $PATH whereis命令 Linux whereis命令用于查找文件。 该指令会在特定目录中... -
直接通过服务器文件相对路径实现文件下载
2019-05-29 13:50:32文件上传到服务器,查询时展示上传文件信息,实现点击文件名称实现文件下载 2,实现方式 2.1) 通过java代码下载方法 /** * 附件下载 * @param response * @param fileName * @param path * @return * @... -
文件的绝对路径与相对路径
2021-01-17 17:07:151.绝对路径先说在本地计算机上,文件的绝对路径当然是指:文件在硬盘上真正存在的路径。例如这个路径:D:/wamp/www/img/icon.jpg告诉我们icon.jpg文件是在D盘的wamp目录下的img子目录中。我们不需要知道其... -
input file获取文件路径
2019-10-28 16:36:20html代码段: <input type="file" @change.prevent.stop="upload"> vue 中script代码段: data() { fileName: '' }, methods: { upload(event) { let files = event.target.files[0];... th... -
pandas读取指定路径的文件
2021-02-03 18:11:21pandas读取指定路径的文件 #方法一:将文件属性中的\换成/ import pandas as pd pd.read_excel("C:/Users/小新Air/Desktop/train.csv") #方法2:使用转义字符r #文件路径并不包含中文 pd.read_excel(r"C:/Users/... -
计算机文件路径的表示
2021-05-17 20:47:44文件路径的表示方法绝对路径与相对路径的区别绝对路径的表示相对路径的表示注意事项常见使用场景控制台命令"cd"程序中资源的引用 文件路径作为计算机基础内容,在很多时候都扮演着十分重要的角色,例如控制台命令、... -
npm 自定义配置 文件下载路径
2020-12-20 05:51:03Nodejs 内置的npm默认会把模块安装在c盘的用户AppData目录下,以下步骤是为了让大家学习如何更改npm 安装目录的首先你可以使用cmd命令进行查看当前电脑的npm 安装路径。输入 npm config ls下面我们就开始配置自定义... -
文件的绝对路径和相对路径
2019-04-18 20:34:35以cmd.exe文件的目录为例。 绝对路径 从盘符开始的路径:C:\windows\system32\cmd.exe相对路径 从当前路径开始的路径 (1)若当前路径为C:\windows,只需输入:system32\cmd.exe,严格的相对路径写法应为:.\system32... -
Python获取当前文件路径,及绝对路径
2019-11-21 17:33:46获取文件当前工作目录路径(绝对路径) 2. sys.path[0] 获取文件当前工作目录路径(绝对路径) sys.argv[0]|获得模块所在的路径(由系统决定是否是全名) 若显示调用python指令,如python demo.py,会得到绝对路径;... -
C中读取文件路径的方式
2019-12-30 10:23:49比如文件路径为: 读取:background.jpg的代码如下: #include <stdio.h> #include <graphics.h> #include <conio.h> IMAGE img_bk; int main() { initgraph(600,480); loadima... -
java 选择保存文件的路径
2013-04-27 00:26:07java 选择文件夹 输入需要保存的文件名称 保存 -
python文件路径操作方法总结
2021-01-13 16:33:10在python中,文件使用十分频繁,本文将向大家介绍python文件路径的操作:得到指定文件路径、得到当前文件名、判断文件路径是否存在、获得指定文件夹下所有文件、获得文件后缀、拼接路径和文件名。1、得到指定文件... -
LongPathTool v2.20 绿色版(Windows长路径文件删除工具)
2013-02-20 08:59:09LongPathTool v2.20 绿色版(Windows长路径文件删除工具) -
java 如何获取一个文件的绝对路径。。。
2021-02-12 16:39:52问题详情java 如何获取一个文件的绝对路径。。。例如InputStream inStream=new FileInputStream("a/b.txt");怎么能得到a/b.txt的绝对路径,b.txt在我的workspace下。作者: hongseyouyang发布时间: ... -
java如何通过绝对路径和相对路径读取文件
2018-05-29 19:24:20绝对路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径 相对路径:由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系 0x02 java通过绝对路径读取... -
Electron打开文件并获得绝对路径方式
2020-06-15 12:22:18Electron打开文件并获得绝对路径方式 在桌面应用中,点击一个按钮,选择一个文件,后台再得到绝对路径进行后续处理是常见的实现。 如采用Input标签File导入的方式,如下示例: <!DOCTYPE ... -
selenium设置文件下载路径
2020-05-19 19:34:30当我不从页面的控件按钮点击下载文件时,drive.get(download_url) 直接get一个下载链接的url,selenium设置的文件下载路径就失效了 -
电脑桌面文件存放路径
2021-06-24 04:30:44电脑桌面存放的文件路径,...解决办法是:修改注册表法如下:1、新建一个文件夹,这个文件夹可以放在你想要存放桌面文件的路径中,例如我要把桌面文件的存放路径改到我的D:\backup\桌面。那我就新建这样一个目录文件... -
手机QQ文件存储路径
2021-12-14 16:52:23安卓手机QQ接收的文件存储路径在: Android>data>com.tencent.mobileqq>Tencent>QQfile_recv -
Python读取文件路径书写方式
2019-11-20 18:25:27例如,在windows电脑读取文件 D:\Temp python 文件路径书写方式有两种: 1. 'D:\\Temp',转义的方式 2. r'D:\Temp',声明字符串不需要转义 注:(字符串里面\被作为转义字符使用) ... -
Qt选择文件路径
2018-08-22 14:14:39QString file_path = QFileDialog::getExistingDirectory(this, "请选择文件路径...", "./"); if(file_path.isEmpty()) { return; }