Chinaunix

标题: python在多个系统下的问题 [打印本页]

作者: Heaice    时间: 2009-03-04 17:11
标题: python在多个系统下的问题
举例子来说会表达的更清楚:

在windows和linux下对目录的表达是不同的,windows下表示d:\sdf\sdf,而liunx下是/home/saf/affg

如果一个程序需要在这两个系统下运行,那么它就要有针对的去处理不同操作系统下目录的情况。

而我现在能想到的是,在每次需要区分处理时去做下os.name,根据结果进行处理,

或者取一次os.name而使用全局变量来判断区分不同系统并进行处理

如果要区分的地方很多的话,就让人很郁闷,而且效率也不好。

有没有更好的方法来解决这个问题?
作者: limodou    时间: 2009-03-04 17:13
简单点就是都用'/'。但有时是合成的,因此可以使用os.path.normpath()来处理就好了。
作者: Heaice    时间: 2009-03-04 17:22
原帖由 limodou 于 2009-3-4 17:13 发表
简单点就是都用'/'。但有时是合成的,因此可以使用os.path.normpath()来处理就好了。


多谢,不过你可能对我上面说的理解有误,或者还是我没有表达清楚。

对于路径问题,只是我举的一个例子来说明详细问题所在。

在某些时候,必须根据不同系统来做出不同的操作,为了能够区分不同的系统并进行后续的操作性,

有没有比我上述说法更好的办法来解决这个问题

[ 本帖最后由 Heaice 于 2009-3-4 17:24 编辑 ]
作者: zhenglxd    时间: 2009-03-04 17:24
标题: 回复 #1 Heaice 的帖子
仅仅是针对 分隔符的话
os.sep不就好了
或者
if os.sep=="\\ ":

(windows的东西)
else:
unix的东西

不就好了 我菜鸟啊 说错了当我没说
作者: Heaice    时间: 2009-03-04 17:30
原帖由 zhenglxd 于 2009-3-4 17:24 发表
仅仅是针对 分隔符的话
os.sep不就好了
或者
if os.sep=="\\ ":

(windows的东西)
else:
unix的东西

不就好了 我菜鸟啊 说错了当我没说


你说的是没错,你这个做法就和我上面说的一样

但是,假如需要区分的情况比较多的话,就不是一个好的方法了。
作者: zhenglxd    时间: 2009-03-05 09:31
标题: 回复 #5 Heaice 的帖子
偷懒肯定是不行的
你写2个程序一个是针对windows一个是针对unix的
其他的跨平台的模块都这么写的
作者: Heaice    时间: 2009-03-05 10:30
原帖由 zhenglxd 于 2009-3-5 09:31 发表
偷懒肯定是不行的
你写2个程序一个是针对windows一个是针对unix的
其他的跨平台的模块都这么写的



看来也只能这样搞了,不过维护不方便啊~
作者: zhenglxd    时间: 2009-03-05 10:44
标题: 回复 #7 Heaice 的帖子
那你在写一个程序 是将以模版的程序 转换为另外一个系统使用的

这样 维护只要 转换一下就可以了
不过前提你要对window和unix都要有相当的了解
不过就没法子了

对了unix是操作界面和windows比 差别大么 听说上面没游戏 不然我也装一个试验下

unix里 是不是只 支持 txt文档没其他文档的啊? 如果他要打开一个文件
是用鼠标像xp样打开 还是 像dos 要用命令 dir cd 什么的?

unix是可视化界面的吗 友不友好啊 没用过很好奇啊。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2