背景
最近用vscode编写python的测试脚本遇到在vscode中层级访问很麻烦,经常在应用文件的时候就提modul 没找到错误,而且使用绝对路径打开某个文件夹也报错,搜了很久终于找到了一个简单快捷的方法,忘记是看谁的文章了,在此感谢!!!
Vscode中不同目录下的python文件模块的应用
比如下图中我想在下方这个红色方框中的文件去应用上面红框中的文件,如果我直接from xxx import的话就会报错。
在网上查找了很多方法,我才开始通过下发这段添加路径的代码去访问可以应用成功,但是后面用绝对路径访问某个文件又报错。
import sys
sys.path.append('./') # 跳到上级目录下面windows下需要‘\\'否则会出错。)
from xxx_Portal import * # 导入
A=Xportal_Login.test(1,2) #测试
print(A)
with open('./apcmd.txt','r') as test:
print(1)
最后查了好多资料舍弃使用 sys.path.appd的方法;最后是在sit-package中创建了一个路径文件,并在里面写入vscode中python文件的根目录,也就是初次打开vscode所创建的工程根目录.
备注:名字一定要这样写!!!! mypath.pth
写入自己的根目录:我这里是在D盘创建的.
VScode中使用绝对路径访问某个文件
上述方法虽然解决了不同目录间python模块的应用问题,但是我的绝对路径又用不了,查了好多方法,据说是vscode的原因,因为在pycharm中就没有这些奇怪问题,这里需要在vscode中设置一个绝对路径开关
vscode------设置-------setting---输入python dir
打开下面这个设置就可以了.默认没有打开.
最后分享一个别人写的使用python画文件目录数的代码
这个很方便的看到总结目录的层次结构.
#!/usr/bin/python
# -*- coding: utf-8 -*-
# ```python
import os
def get_num(path):
dirlist = os.listdir(path)
j=0
for i in dirlist:
j+=1
return j
def print_tree(path,last):
num=get_num(path)
if num!=0:
dirlist = os.listdir(path)
j=0
for i in dirlist:
for k in last:
if k=='0':
print(" │",end=" ")
else:
print(" ", end=" ")
j+=1
if j<num:
print(" ├── ", end="")
print(i)
dir=path+"\\"+i
if os.path.isdir(dir):
print_tree(dir,last+'0')
else:
print(" └── ", end="")
print(i)
dir = path + "\\" + i
if os.path.isdir(dir):
print_tree(dir,last+'1')
def write_tree(path,last,f):
num=get_num(path)
if num!=0:
dirlist = os.listdir(path)
j=0
for i in dirlist:
for k in last:
if k=='0':
f.write(" │")
else:
f.write(" ")
j+=1
if j<num:
f.write(" ├── ")
f.write(i)
f.write('\n')
dir=path+"\\"+i
if os.path.isdir(dir):
write_tree(dir,last+'0',f)
else:
f.write(" └── ")
f.write(i)
f.write('\n')
dir = path + "\\" + i
if os.path.isdir(dir):
write_tree(dir,last+'1',f)
if __name__=='__main__':
path = input("请输入文件夹路径(不含名称):")
root = input("请输入文件夹名称:")
if len(path)==1:
path+=':'
#print(" └─root")
#print_tree('D:\\root',"1")
f = open("tree.txt", "w", encoding="utf-8")
f.write(" └──"+root+"\n")
write_tree(path+"\\"+root, "1",f)
f.close()
总结:
在vscode中写python代码遇见路径访问的问题,应该设置上面这两个就没啥问题了.