python 路径path篇:工作目录、相对路径、绝对路径、文件目录

import os
文件目录和路径:
1、当前工作目录 os.getcwd()
可以切换chdir、修改fchdir工作目录os.getcwd()和os.path.dirname(__file__)都是返回文件路径。区别:详见__file__ 
直接A脚本执行,返回一样,都是所在目录
但是当B调用A里路径, os.getcwd()返回B的路径,os.path.dirname(__file__)还是返回A的路径****
补充:print(os.path.split(os.path.abspath(__file__))[0])2-1、绝对路径 os.path.abspath(path)
只是获取 path 的绝对路径,并不解析符号链接
a、绝对路径
print(os.path.abspath(__file__))#full_path带文件名
b、父路径(文件所在路径 不带文件名)**************
print(os.path.split(os.path.abspath(__file__))[0])#\ 区别:split会解析符号软链接指向
print(os.path.dirname(__file__))#/
c、其他
print("父路径>绝对路径:",os.path.abspath('.'))
print("祖父路径>绝对路径:",os.path.abspath('..'))
print("文件名>绝对路径:",os.path.abspath('git_guid.txt'))#不会检查文件是否存在或有效2-2、绝对路径 os.path.realpath(link)  #link指向的真实路径
解析其中的符号链接,它会将符号链接解析为其指向的真实路径,并返回真实路径的规范化形式
abspath和realpath 按需使用。3、相对路径 os.path.relpath(path,start)#start可选,默认:当前工作目录 os.getcwd()。
path=r'C:\Users\nancy\Desktop\python_temp_script\path1.py'
start=r'C:\Users\nancy\Desktop\python_temp_script'
rel_path = os.path.relpath(path, start)
print("path的相对路径",rel_path)4、dirname(p)  返回指定路径的文件夹部分
print(os.path.dirname(r"E:\python_auto\api_unittest\data\case\temp.xlsx"))5、basename(path) 返回指定路径的最后一个组成部分:可以返回文件名
print(os.path.basename(r"E:\python_auto\api_unittest\data\case\temp.xlsx"))其他:
1、__file__  变量表示当前脚本的文件路径,优点:跨平台兼容、可移植、不依赖工作目录*********
a、可以获取当前模块在文件系统中的准确位置,而不依赖于当前工作目录或其他环境变量。
abspath=os.path.abspath(__file__)  #获取当前模块的绝对路径[其他模块调用路径不变]
b、路径拼接
print(os.path.join(os.path.dirname(__file__),"case.xls"))2、split(path)分割文件路径和文件名 元组
print(os.path.split(r"E:\python_auto\api_unittest\data\case\case.xls"))3、join(path,*paths) 拼接
print(os.path.join(r"E:\python_auto\api_unittest\data\case","case.xls"))
print(os.path.join(r"E:\python_auto\api_unittest","data\case","case.xls"))4、isfile(path) 指定path是文件
print(os.path.isfile(r"E:\python_auto\api_unittest\data\case\case.xls"))#True
print(os.path.isfile(r"E:\python_auto\api_unittest\data\case"))#False5、isdir(path) 指定path是目录
print(os.path.isdir(r"E:\python_auto\api_unittest\data\case\case.xls"))#False
print(os.path.isdir(r"E:\python_auto\api_unittest\data\case"))#True6、getsize(filename) 单位:字节
print(os.path.getsize(r"E:\python_auto\api_unittest\data\case\case.xls"))附:
1、os.name系统判断
if os.name == 'posix':  # Unix/Linux/MacOSroot_directory = '/'
elif os.name == 'nt':  # Windowsroot_directory = os.path.abspath(os.sep)
else:root_directory = None  # 处理其他操作系统的情况2、读取文件
file_path='E:/python_auto/api-unittest_demoyy/data/case/token.json'
file_path='E://python_auto//api-unittest_demoyy//data//case//token.json'
file_path=r'E:\python_auto\api-unittest_demoyy\data\case\token.json'
with open(file_path, 'r', encoding='utf-8') as fp:data = fp.read()print(data)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部