如果我使用Python标准库编写一个Python脚本,使用Python 2.6,只要安装了Python 2.6,它就能在所有操作系统上运行吗?
这要看情况。Python标准库中的某些部分仅适用于特定平台,这些部分在Python文档中有说明。
您还需要注意如何处理文件路径 - 使用os.path.join()
等函数确保路径格式正确。
当您阅读二进制文件时,需要小心。始终使用“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
是的,除非您使用的模块是与操作系统相关的。
编辑:根据评论,我的回复似乎过于简短并且不够直接。
我没有讨论一般的可移植编程。
这意味着需要处理二进制数据打包和操作、C扩展问题、Windows/Unix中的路径、Windows文本中的"\r\n"以及许多其他问题。
但是就Python模块的可移植性而言,毫无疑问。
它们是可移植的。
然而,有些模块仅在特定平台上可用,如果您使用它们,则可移植性将受到限制。