一、对于shell
首行
#!/usr/bin/env
#encoding =utf-8
二、对于python
1. 编码。python文件头一定要
#!/usr/bin/env
#coding=GBK
是GBK就要申明,否则 IDLE,PythonWin,uLiPad,notepad,gedit一会儿就弄成乱码了
2. 换行。为了保持最大的兼容性,推荐用 0x0A,也就是 /n。
3.缩进。也就是按tab键。这个东西出了问题是最郁闷的。多一个,少一个都要报错。如果你的脚本连print
很多时候我们需要编写能够同时在windows,linux两个平台运行的程序,这个时候使用python是一个不错的选择,下面说下我碰到的需要注意的几点。
1:分辨当前系统
import platform
if 'Windows' == platform.system():
elif 'Linux' == platform.system():
2:编码问题
import locale
'测试一下'.decode('UTF8').encode(locale.getdefaultlocale()[1])
3:写文件时换行符问题
4:文件路径处理
path.join(), path.split(), path.splitext()等方法
5:编译为可执行文件
推荐两个软件py2exe(只能编译windows程序),pyinstaller(可以编译windows和linux二进制可执行程序)
两个程序都很方便使用,基本能满足编译需求。我更推荐pyinstaller,它不是python的模块,是外部的单独应用。
简单介绍使用方法如下:
py2exe:
from distutils.core import setup
import py2exe
setup(console=["lz.py"]
pyinstaller:
众所周知,Windows下的路径分隔符为反斜杠 "\", 而UNIX-like系统下的路径分隔符为正斜杠 "/",这常导致代码跨平台移植时的问题。
Python设计为一门跨平台的语言,当然可以轻松解决此问题。
首先,Python在不同平台下都可以正确识别以正斜杠为分隔符的路径。如果在程序中只用到程序中预置的路径字符串(比如说指定库的位置),而不涉及从系统获取文件路径,则只要将路径写为正斜杠分隔路径,代码即可跨平台。
但是如果需要使用os.path.abspath() os.walk()等函数获取路径,Python返回的路径字符串会是操作系统默认格式的路径字符串。这时的解决方法主要有:
在需要拼接、查找路径分隔符的地方,使用 os.path.sep来代替显式的 '/' 或 '\\' ,该变量依平台不同而不同。
当然这样写会比较啰嗦,本来只需要 a+'/'+b+'/'+c就可以的地方,现在就需要写成a+os.path.sep+b+os.path.sep+c了。本来直接 filename.split('/')就可以,现在就得写成filename.split(os.path.sep)。
所以,对于这些操作,使用 os.path 的各种内置函数来操作,会简洁一些,同时也增加代码的可阅读性。比如说,前面的a+'/'+b+'/'+c 就可以写成os.path.join(a,b,c) 。类似的操作还有:os.path.split()