python import 相对路径

 

 

 

PYTHON获取当前目录路径和上级路径

在使用python的时候总会遇到路径切换的使用情况,如想从文件夹test下的test.py调用data文件夹下的data.txt文件:

 

一种方法可以在data文件下加入__init__.py 然后在test.py 中import data 就可以调用data.txt文件;

 

.
└── folder
    ├── data
    │   └── data.py
    └── test
        └── test.py

 另一种方法可以借助python os模块的方法对目录结构进行操作,下面就说一下这种方式的使用:

#data.py


import os
import sys
print('***获取当前目录***')
print(os.getcwd())
print(os.path.abspath(os.path.dirname(__file__)))

print('***获取上级目录***')
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
print(os.path.abspath(os.path.dirname(os.getcwd())))
print(os.path.abspath(os.path.join(os.getcwd(), "..")))
tmppath = os.path.abspath(os.path.join(os.getcwd(), ".."))

print('***获取库目录***')
tmppath= tmppath+"\\test"
print(tmppath)

print('***获取上上级目录***')
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))

sys.path.insert(0,tmppath)
print(sys.path)


import test


'''
Tab =[]

Tab.append("aaa")
print(Tab.index("aaa"))


Tab.append("aabb)
Tab.append("cc")
print(Tab.index("dd"))
cc = list(enumerate(Tab))
print("Id  ","name")
print(cc[0][0],": ",cc[0][1])
print(cc[1][0],": ",cc[1][1])
print(cc[2][0],": ",cc[2][1])
#print()
Tab1 = cc
print(len(cc))
print(len(cc[0]))

print('')
print('')
'''
'''
def cleantxt(inputfile):
    with open(inputfile, "w", encoding="utf-8") as f_clean_w :
        f_clean_w.write('')
'''       
def SaveModTab(inputfile,Tab):
    Tab = list(enumerate(Tab))
    with open(inputfile, "w", encoding="utf-8") as f_w:
            tmp ="zzz:"
            f_w.write(tmp+'\n')
            print(tmp)
            tmp ="  zzzId        zzz_Name"
            f_w.write(tmp+'\n')
            print(tmp)
            for i in range(0,len(Tab)):
                tmp = "  "+str(Tab[i][0]) +"            "+str(Tab[i][1])
                print(tmp)
                f_w.write(tmp+'\n')




inputfile = 'Tab.txt'
Tab =[]
Tab.append("aaa")

print(Tab.index("aaa"))
Tab.append("bb")
Tab.append("cc")
Tab.append("dd")

#cleantxt(inputfile)
Tab(inputfile,Tab)

test.primt("22222")



可以以下这种: 都不需要__init__.py 

''' 方法1
print('***获取库目录***')
tmppath= tmppath+"/aa"
print(tmppath)

print('***获取上上级目录***')
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))

sys.path.insert(0,tmppath)
print(sys.path)


import test


'''


#方法2 (from 不能使用多级目录bb/cc/aa)

print('***获取库目录***')
#tmppath= tmppath+"/aa"
print(tmppath)

print('***获取上上级目录***')
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))

sys.path.insert(0,tmppath)
print(sys.path)

from aa import test

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值