Python 基础

1.python的导入路径问题

https://laike9m.com/blog/pythonxiang-dui-dao-ru-ji-zhi-xiang-jie,60/  这篇文章已经说的很详细了,这里主要是自己的理解和解决办法

在实用python命令运行文件a.py的时候,这个时候python是将a.py文件所在的文件夹当成了top—level,也就是顶层目录,如果要引用上一层的文件,比如是用from ..Utils import util 这样是不行的,因为这时候在python看来是没有上一层的,所以..对python来说是没有用的。

故 程序入口文件只能使用绝对路径导入

问题又来了,使用绝对路径导入的时候,python会从sys.path中扫描你要导入的包,在本地开发的时候,直接运行的时候本地项目的根目录是默认加在sys.path中的,所以使用from superPackage.package import util是可行的,但是在服务器linux上运行的时候,项目路径并没有在sys.path中,如何把项目的跟目录加到sys.path中让服务器环境变的跟本地环境一样呢?有很多种办法,可以使用sys.path.append方法,可以在site-packages 文件中创建 .pth文件,将模块的路径写进去,一行一个路径,当然最好的办法是加一个PYTHONPATH环境变量,在这个环境变量中输入相关的路径,不同的路径之间用逗号(英文的)分开,如果PYTHONPATH 变量不存在,可以创建它。

2.pip安装的时候使用阿里云的镜像

在~/.pip/ 目录下创建pip.conf文件(linux的文件在~/.pip/pip.conf,windows在%HOMEPATH%\pip\pip.ini),文件格式为UTF8无BOM格式,没有该文件夹就创建一个,pip.ini内容如下:

[global]

index-url=http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com

3.在linux上使用pymssql和freetds在linux上连接SqlServer

step 1:下载并安装freetds-dev,下载地址:ftp://ftp.freetds.org/pub/freetds/current/freetds-dev.1.00.tar.gz,

        解压,进入解压后的文件夹,执行

        ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib

        make

        make install

       在/usr/local/freetds/bin里执行tsql -H ip -U username -P password 测试连接

step 2:配置环境变量【非常重要】,在/etc/profile最后添加以下代码并执行source /etc/profile 使其生效

         export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/freetds/lib/:

step3:安装pymssql,pip install pymssql

step4:在python命令行使用pymssql.connect(server='ip',user='',password='')测试连接,需import pymssql

4.使用ipython和notebook

安装ipython:pip install ipython

安装notebook:pip install jupyter notebook

使用ipython启动notebook:ipython notebook       

notebook常用快捷键:shift+enter  执行命令

5.python2.x兼容python3.x


Python 基础_第1张图片
在python2.x的py文件头引入上面的代码来兼容python3.x的语法

6.使用timeit测试程序运行速度,这是目测最好用的一种办法

import  timeit

times = timeit.Timer(lambda: test()).timeit(10)    # test()为要测试的函数,10表示重复的次数

print(times)

7. python2.x中文编码问题解决

方法一:在程序文件中以下三句              

import sys              

reload(sys)              

sys.setdefaultencoding('utf8')             

方法二:修改Python本环境(推荐)         

在Python的Lib\site-packages文件夹下新建一个sitecustomize.py文件,

内容为:            

 #coding=utf8             

import sys             

reload(sys)             

sys.setdefaultencoding('utf8')      

重启Python解释器,发现编码已被设置为utf8,系统在Python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动加上解决代码,属于一劳永逸的解决方法

8.一些很实用但不常见的操作

Python 基础_第2张图片
浮点数相除保留整数结果
Python 基础_第3张图片
反转列表
Python 基础_第4张图片
两个冒号的切片方法


Python 基础_第5张图片
神奇的enumerate关键字,如果你用到遍历索引的话


Python 基础_第6张图片
循环字典用iteritems方法


Python 基础_第7张图片
牛逼的列表表达式,这个挺常用


Python 基础_第8张图片
可以动态的接收参数,看别人的源码里经常这样子


Python 基础_第9张图片
函数可以当对象传递,解释性语言牛逼的地方

9. 打印工作进度-让数据总在一行显示

python2    print '\r%d' % progressNum,     # \r可以让每次从一行的头部开始输出,后边加逗号可以强制在一行打印数据

python3    print( '\r%d' % progressNum , end='')  # 使用end=''强制在一行打印数据

你可能感兴趣的:(Python 基础)