python代码追踪,debug调试,代码规范

代码追踪
安装
linux
yum install gdb
pip install lptrace

windows
C:/Python37/python.exe -m pip install lptrace

详细追踪
python -m trace --trace for.py

显示调用了那些函数
python -m trace --tracecalls for.py

debug调试

除了 print打断点
还可以通过pdb,ipdb的方法在有问题的代码处打断点
在这里插入图片描述

使用pycodestyle检查代码规范 ,autopep8 将代码格式化
在这里插入图片描述

(venv) [root@node-1 test]# cat a.py 
import os, sys

def main():
    print(item for item in os.listdir('.') if item.endswith('.py'));
    print(sys.version)

if __name__ == '__main__':
    main()
(venv) [root@node-1 test]# pycodestyle  a.py 
a.py:1:10: E401 multiple imports on one line
a.py:3:1: E302 expected 2 blank lines, found 1
a.py:4:68: E703 statement ends with a semicolon
a.py:7:1: E305 expected 2 blank lines after class or function definition, found 1

(venv) [root@node-1 test]# autopep8 a.py 
import os
import sys


def main():
    print(item for item in os.listdir('.') if item.endswith('.py'))
    print(sys.version)


if __name__ == '__main__':
    main()
(venv) [root@node-1 test]# python a.py 
<generator object main.<locals>.<genexpr> at 0x7f001cd82850>
3.7.9 (default, Feb 14 2023, 10:55:36) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]

判断文件是否存在

(venv) [root@node-1 test]# autopep8 test_argv.py 
from __future__ import print_function
import sys


def main():
    sys.argv.append("")
    filename = sys.argv[1]
    if not os.path.isfile(filename):
        raise SystemExit(filename + ' does not exists')
    elif not os.access(filename, os.R_OK):
        raise SystemExit(filename + ' is not accessible')
    else:
        print(filename + ' is accessible')


if __name__ == '__main__':
    main()
(venv) [root@node-1 test]# python test_argv.py 111
111 does not exists
(venv) [root@node-1 test]# ls
a.py  test_argv.py
(venv) [root@node-1 test]# python test_argv.py a.py
a.py is accessible

stdin 标准输入
stdout 标准输出
stderr 错误输出

(venv) [root@node-1 test]# cat read_stdin.py
from __future__ import print_function
import sys

for line in sys.stdin:
    print(line, end="")
(venv) [root@node-1 test]# cat /etc/passwd | python read_stdin.py 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值