2010-10-07 86 views

回答

9

取决于。 Python标准库有几个部分仅在某些平台上可用。这些部分在Python文档中注明。

您还需要小心如何处理文件路径等事情 - 使用os.path.join()等以确保路径格式正确。

+0

Upvoted提及路径。 – kindall 2010-10-07 04:21:04

0

是的,除非你使用的是依赖os的模块。

编辑:我的回答似乎短 并没有太多的点基于 评论

我不是解决一般的便携式编程。

这将意味着照顾二进制数据的打包和操作,c扩展问题,windows/unix中的路径,windows文本中的“\ r \ n”等等。

但是关于python模块的可移植性,没有任何问题。

它们是便携式的。

但是,有些模块只能在特定平台上使用,如果您使用它们,那么可移植性将会降低。

+0

-1:这不就是说,除了那些不会的东西外,一切都会奏效吗? – 2010-10-07 06:41:21

+0

@Lasse V. Karlsen:不是。我可能会做一个简短的回复。但这意味着与上面Amber提供的答案完全相同。如果你在脚本中使用的话,有一些操作系统依赖模块,它不会在其他操作系统上移植。这些操作系统特定的可用模块都有详细记录 – pyfunc 2010-10-07 06:55:36

+0

在我的答案中尝试“幻数26”示例 - 它仅使用内置函数。 – 2010-10-07 07:04:22

7

阅读二进制文件时需要小心。始终使用'rb','wb'等文件打开模式。你可以在Unix/Linux /等上使用'r'等,但它对Windows很重要。不直观的是,CSV文件是二进制文件。

指导锻炼:锻炼身体为什么这个代码在Windows上产生26来代替,这将产生在非Windows中的128:

>>> s = ''.join(map(chr,range(128))) 
>>> len(s) 
128 
>>> f = open('junk.txt', 'w') 
>>> f.write(s) 
>>> f.close() 
>>> len(open('junk.txt').read()) 
26 

避免硬编码文件路径。

不要以为你可以在控制台上打印unicode(或utf8编码的unicode),并使其可读或完全呈现。

某些Python模块不会自动安装在某些Linux发行版中......您需要单独的“dev”软件包。

不完全是操作系统问题,但某些操作系统在bigendian机器上运行,所以如果您正在编写/读取二进制格式的任何工作,则需要考虑排序。

+0

提示(练习):尝试手动遍历输入,并查看ASCII表。 – 2010-10-08 03:54:15