Python论坛  - 讨论区

标题:Re: Re: [python-chinese] 多层次程序调试时候的相对路径错误问题

2005年07月07日 星期四 11:27

amingsc amingsc at 163.com
Thu Jul 7 11:27:29 HKT 2005

Qiangning Hong,您好!

	谢谢了啊,你的回复确实解决了我的问题,其他人都误解了我的问题了可能是我写得不够清楚吧.
把相对路径转化成绝对路径就搞定了---想来也简单,我怎么就这么笨想不到呢

但是我又发现了问题:
运行的时候会出错:__file__没有定义
我查看了py文档,明明说了__name__,__doc__,__file__是预定义的变量
但是我在程序中用print dir()显示却偏偏少了__file__,你知道是什么问题吗?

于是我在‘data’文件的相同目录下建了一个空文件null.py,通过import null.py来引入__file__:
import os.path
import null
filename = os.path.join(os.path.dirname(null.__file__), 'data')

======= 2005-07-06 23:58:00 您在来信中写道:=======

>On 7/6/05, amingsc <amingsc at 163.com> wrote:
>> 在将程序组织成若干层次的时候,如果在底层需要设置文件的相对路径,则在调试的时候会有问题,我举例说明.
>> 比如程序如图组织:
>>      |------module1.py:main
>>      |
>>      |------package
>>              |-------module2.py
>>                          |-------data
>> 下面是代码文件:
>[...]
>> -----------------------module2.py:
>> filename = r'package\data'
>
>这里改成:
>
>import os.path
>filename = os.path.join(os.path.dirname(__file__), 'data')
>
>[...]
>> 问题:直接运行module1程序是正确的,但是我们在写程序的时候往往需要对当前的模块进行调试,
>> 所以在写module2的时候,调试模块则会出错(因为这时文件data的相对路径应该是r'data',而不是r'package\data')
>[...]
>
>
>-- 
>Qiangning Hong
>Get Firefox! <http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1>
>_______________________________________________
>python-chinese list
>python-chinese at lists.python.cn
>http://python.cn/mailman/listinfo/python-chinese
>

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        amingsc
        amingsc at 163.com
          2005-07-07


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年07月07日 星期四 12:27

Qiangning Hong hongqn at gmail.com
Thu Jul 7 12:27:06 HKT 2005

我还没有碰到__file__没有定义的情况。
你能把你出错的代码贴出来吗?你精简一下,只要能出__file__没有定义的错就行了。

On 7/7/05, amingsc <amingsc at 163.com> wrote:
> Qiangning Hong,您好!
> 
>         谢谢了啊,你的回复确实解决了我的问题,其他人都误解了我的问题了可能是我写得不够清楚吧.
> 把相对路径转化成绝对路径就搞定了---想来也简单,我怎么就这么笨想不到呢
> 
> 但是我又发现了问题:
> 运行的时候会出错:__file__没有定义
> 我查看了py文档,明明说了__name__,__doc__,__file__是预定义的变量
> 但是我在程序中用print dir()显示却偏偏少了__file__,你知道是什么问题吗?
> 
> 于是我在'data'文件的相同目录下建了一个空文件null.py,通过import null.py来引入__file__:
> import os.path
> import null
> filename = os.path.join(os.path.dirname(null.__file__), 'data')
> 
> ======= 2005-07-06 23:58:00 您在来信中写道:=======
> 
> >On 7/6/05, amingsc <amingsc at 163.com> wrote:
> >> 在将程序组织成若干层次的时候,如果在底层需要设置文件的相对路径,则在调试的时候会有问题,我举例说明.
> >> 比如程序如图组织:
> >>      |------module1.py:main
> >>      |
> >>      |------package
> >>              |-------module2.py
> >>                          |-------data
> >> 下面是代码文件:
> >[...]
> >> -----------------------module2.py:
> >> filename = r'package\data'
> >
> >这里改成:
> >
> >import os.path
> >filename = os.path.join(os.path.dirname(__file__), 'data')
> >
> >[...]
> >> 问题:直接运行module1程序是正确的,但是我们在写程序的时候往往需要对当前的模块进行调试,
> >> 所以在写module2的时候,调试模块则会出错(因为这时文件data的相对路径应该是r'data',而不是r'package\data')
> >[...]
> >
> >
> >--
> >Qiangning Hong
> >Get Firefox! <http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1>
> >_______________________________________________
> >python-chinese list
> >python-chinese at lists.python.cn
> >http://python.cn/mailman/listinfo/python-chinese
> >
> 
> = = = = = = = = = = = = = = = = = = = =
> 
> 
>> 礼!
> 
> 
> amingsc
>         amingsc at 163.com
> 2005-07-07
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 


-- 
Qiangning Hong

I'm usually annoyed by IDEs because, for instance, they don't use VIM
as an editor. Since I'm hooked to that, all IDEs I've used so far have
failed to impress me.
   -- Sybren Stuvel @ c.l.python

Get Firefox! <http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年07月07日 星期四 14:27

David dingyz at szgwbn.net.cn
Thu Jul 7 14:27:10 HKT 2005

想在程序里实现ping并取得延时和丢包数据,最好用ICMP和TCP双协议都能实现(因为
有的地方是禁ping的)。

谢谢。

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050707/bb9eb39b/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号