近期打算认真学一学python,很早之前就看过但是一直没有毅力坚持下来,这篇笔记就当督促自己学习的动力吧!!!
1,直接运行py文件
能不能像.exe文件那样直接运行.py
文件呢?在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py
文件的第一行加上一个特殊的注释:
1 #!/usr/bin/env python3 2 3 print('hello, world')
然后,通过命令给hello.py
以执行权限:
$ chmod a+x hello.py
就可以直接运行hello.py
了,比如在linux下运行:
./hello.py
python后台运行py程序:
nohup python manage.py runserver >/usr/local/nginx/server/logs/easyQAsystem.log 2>&1 &
说明:
1是标准输出(STDOUT)的文件描述符,2是标准错误(STDERR)的文件描述符
1> /usr/local/nginx/server/logs/easyQAsystem.log 简化为 > /usr/local/nginx/server/logs/easyQAsystem.log,表示把标准输出重定向到/usr/local/nginx/server/logs/easyQAsystem.log这个文件
2>&1 表示把标准错误重定向到标准输出,这里&1表示标准输出
为什么需要将标准错误重定向到标准输出的原因,是因为标准错误没有缓冲区,而STDOUT有。
这就会导致 commond > python.log 2> python.log 文件python.log被两次打开,而STDOUT和
STDERR将会竞争覆盖,这肯定不是我门想要的。好了,我们现在可以直接关闭shell窗口(我用的是SecureCRT,用的比较多的还有Xshell),而不用再输入exit这个命令来退出。
[root@shtppATTSTPUBv01 easyQAsystem]# [root@shtppATTSTPUBv01 easyQAsystem]# nohup python manage.py runserver >/usr/local/nginx/server/logs/easyQAsystem.log 2>&1 & [1] 51576 [root@shtppATTSTPUBv01 easyQAsystem]# ps -ef|grep manage root 51576 33130 7 16:49 pts/0 00:00:00 python manage.py runserver root 51591 51576 8 16:49 pts/0 00:00:00 /usr/bin/python /opt/easyQAsystem/manage.py runserver
2,Python代码格式
以#
开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:
结尾时,缩进的语句视为代码块。
缩进有利有弊。好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab。按照约定俗成的管理,应该始终坚持使用4个空格的缩进。
1 # print absolute value of an integer: 2 a = 100 3 if a >= 0: 4 print(a) 5 else: 6 print(-a)
3,Python列表
- python列表就像数组,内存中使用堆栈进行存储。
movies=['The Holy Grail','The Life of Brain','The Meaning of Life'] print(type(movies))
movies类型为<class 'list'>
可以使用[]加下标进行访问列表成员(下标从0开始);
使用len(列表名)获取列表长度;
列表末尾增加一个数据项append(param);
从列表末尾删除一个数据线pop();
在列表末尾增加一个数据项集合extend(params);
在列表中删除一个指定的数据项remove(param);
在列表指定位置前增加一个数据项insert(0,param);
- 列表推导式书写形式:
[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]
4,pip: failed to create process.解决方法
昨天在使用pip过程,pip提示:failed to create process。
解决方法:python -m pip install xxx 就可以了
如以matplotlib为例即:python -m pip install matplotlib 即可安装成功
5,reload() 用于重新载入之前载入的模块。
import imp imp.reload(module)