VScode不同目录下的python文件的引用和绝对路径的使用方法

背景

最近用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代码遇见路径访问的问题,应该设置上面这两个就没啥问题了.

refrence

Python实现画目录树_python 显示目录树_陈翼轩的博客-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值