python相对路径以及上上级路径的表示方法

在Python中,绝对路径可能导致文件位置变动时的路径错误。相对路径提供了解决这一问题的方法,如"./"表示当前目录,"...\"用于指向上一级目录。本文介绍了如何使用相对路径引用上上级目录以及其他层级的文件,如".../res/access.log",并阐述了相对路径在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题引入,绝对路径的缺点

在python学习中,我会将代码放在code目录下,其他类型文件放在res目录下,方便浏览和管理。
在这里插入图片描述
但是我想在code目录下404.py调用res目录下access.log,使用绝对路径很长(C:\Users\Administrator\Desktop\Day\Jasn–70–Days\Day01~15\Day 09\code\access.log),而且文件夹位置一旦移动就路径就会出错。

相对路径出场
r'../res/access.log'

即能完美解决这个问题。
所以修改后的代码为:

'''
模拟管道,实现功能:tail -f access.log | grep '404'
version:01
author:jasn
Date:2020-01-09
'''
import time

def tail(filepath):
    with open(filepath,'rb') as f:
        f.seek(0,2) #获取最后一行
        while True:
            line=f.readline()
            if line:
                yield line
            else:
                time.sleep(0.5) #定时间隔刷新

def grep(pattern,lines):
    for line in lines:
        line=line.decode('utf-8')
        if pattern in line:
            yield line

for line in grep('404',tail(r'../res/access.log')):
    print(line,end='')

#写入内容
with open(r'../res/access.log','a',encoding='utf-8')as f:
    f.write('出错了,404!\n')
python相对路径的用法
| -- code
     | -- conf.py
     | -- start.png
| -- res
	 |config.txt
	 |access.log
| -- main.py
| --logo.png

如果main.py,引用logo.png,相对路径的写法为:"./logo.png"。logo.png和main.py处于同一目录下
如果conf.py,引用access.log,相对路径的写法为:"…/res/access.log"
如果conf.py,引用logo.png,相对路径的写法为:"…/logo.ong"
. 指当前文件所在的文件夹
指当前文件的上一级目录。

当然相对路径还可以表示上上级、上上上级、上上上上级目录等
上上级:…/…/

上上上级:…/…/…/

上上上上级:…/…/…/…/
相对路径也可以表示上级目录下的不同子目录和文件,例如:

…/…/Day09/code/test.txt:表示当前文件的上上级目录下的Day09目录下的code目录里面的test.txt文件

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值