鱼C论坛

 找回密码
 立即注册
查看: 1722|回复: 4

[已解决]关于模块调用后文件路径混乱的问题

[复制链接]
发表于 2021-6-20 18:56:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 fc5igm 于 2021-6-20 20:26 编辑

假设这么一个路径
D:\\A\B
有个模块位于B,叫b,他的代码是调用同目录下的其他文件。全部运行成功。
再有一个模块位于A,叫a,他的代码是调用模块b。此时就会出问题了。
因为b运行成功的前提是它能调用到和它同在B中的其他文件,但是当a调用模块b之后,模块b的程序路径就从文件夹B转到了文件夹A。
此时原本b中所写的调用同目录下其他文件的代码就会失效了。因为当目录从B改到A之后,A下并没有模块b需要的文件。
请问对于这种因为模块调用,而导致的文件路径混乱,应该怎么解决?
最佳答案
2021-6-20 19:58:46
给你一串代码粘贴在程序头上就好了,并不是混不混乱的问题:
import os
import sys

BASE_DIR = os.path.dirname(os.path.abspath(__file__)) + '\\'
for root,_dir,file in os.walk(BASE_DIR):
    sys.path.append(root)

sys.path.reverse()

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-20 19:58:46 | 显示全部楼层    本楼为最佳答案   
给你一串代码粘贴在程序头上就好了,并不是混不混乱的问题:
import os
import sys

BASE_DIR = os.path.dirname(os.path.abspath(__file__)) + '\\'
for root,_dir,file in os.walk(BASE_DIR):
    sys.path.append(root)

sys.path.reverse()

评分

参与人数 1贡献 +3 收起 理由
fc5igm + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-20 20:23:45 | 显示全部楼层
本帖最后由 fc5igm 于 2021-6-20 20:28 编辑
nahongyan1997 发表于 2021-6-20 19:58
给你一串代码粘贴在程序头上就好了,并不是混不混乱的问题:


我嫖了一段这个代码
def relpath(file):
    """
    Always locate to the correct relative path.
    >>> relpath('proxy_ip.txt')
    'D:\\python\\works\\project\\proxy_ip\\proxy_ip.txt'
    """
    from sys import _getframe
    from pathlib import Path
    frame = _getframe(1)
    curr_file = Path(frame.f_code.co_filename)
    return str(curr_file.parent.joinpath(file).resolve())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-20 20:30:31 | 显示全部楼层
fc5igm 发表于 2021-6-20 20:23
我嫖了一段这个代码

他们用的都是我没用过的库。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-20 20:32:17 | 显示全部楼层
nahongyan1997 发表于 2021-6-20 20:30
他们用的都是我没用过的库。。


哈哈,刚才我看一时半会也没人回,我就去别的地方搜了搜。库以后再学,现在先用着
另外谢谢你的回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 21:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表