Python技巧积累

获取当前用户的主目录

有三种方法:

os.environ['HOME']
os.path.expandvars('$HOME')
os.path.expanduser('~')

当需要读写主目录里的文件时,这样指定路径的代码可以做到系统无关(Win、Linux、Mac的主目录路径都不同)、用户无关(不同用户的用户名不一样)。

将非英文字母转换为英文字母

英文中有时会混有一些其它语言的单词,可能包含一些有重音标志的字母(如á)。为方便处理,可以将其转换为ASCII字符集中的字符,方法有两种:

  • 使用第三方模块Unidecode,甚至可以处理中文,转换为拼音。
import unidecode
accented_string = 'Málaga'
unaccented_string = unidecode.unidecode(accented_string)
  • 使用内置的unicodedata模块
import unicodedata
accented_string = 'Málaga'
unaccented_string = unicodedata.normalize('NFD', accented_string).encode('ascii', 'ignore')