标题:求助:__file__的路径显示不同问题
只看楼主
modu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-6-24
结帖率:0
已结贴  问题点数:10 回复次数:2 
求助:__file__的路径显示不同问题
今天在写脚本的时候发现一个很奇怪的问题:
我在脚本a中有一段代码如下:
pro_path = os.path.split(os.path.realpath('__file__'))[0]
在a脚本中单独运行,显示pro_path为:
C:\Users\Administrator\Desktop\文档\自动化脚本\myTest\common

b脚本会调用到a脚本,在运行b时,显示pro_path为:
C:\Users\Administrator\Desktop\文档\自动化脚本\myTest
----------------------------------------------------------------------------------
在把上面的代码中'__file__'去掉引号后,两个脚本运行显示:
C:\Users\Administrator\Desktop\文档\自动化脚本\myTest\common

虽然找到了问题原因,但是我不明白加了引号后的'__file__'代码路径会显示不同的路径
搜索更多相关主题的帖子: 路径 显示 不同 脚本 运行 
2019-06-24 10:13
lwy2xxj
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:36
专家分:148
注 册:2019-4-8
得分:10 
加上引号,os.path.realpath里面的值是一个字符串,如果不加引号,__file__是当前运行文件的fullname

os.path.realpath的源码如下:

os.path.realpath

Type: <type 'function'>

Value: <function abspath at 0x015D3C70>

Docstring:

"""Return the absolute version of a path."""

Source Code:

    def abspath(path):
        """Return the absolute version of a path."""

        if path: # Empty path must return current working directory.
            try:
                path = _getfullpathname(path)
            except WindowsError:
                pass # Bad path - return unchanged.
        elif isinstance(path, unicode):
            path = os.getcwdu()
        else:
            path = os.getcwd()
        return normpath(path)
2019-06-25 11:11
modu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-6-24
得分:0 
回复 2楼 lwy2xxj
谢谢  搞懂了
2019-06-25 17:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-495468-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.198877 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved