Black是facebook提供的一个python formatter工具,为规范、统一代码风格,建议大家统一安装并配置,git地址:https://github.com/psf/black
1、安装Black
pip3 install black
2、查找Black安装路径
which black
3、使用
① 在pycharm集成(推荐)
设置文件监听:进入 PyCharm → Preferences → Tools → File Watchers,添加custom
参考下图依次选择/输入:
Name:Black
File type: Python
Scope:Project Files
Program:第2步which black获取到的路径
Arguments:$FilePath$ -l 500 (这里带上一个参数 -l 500 设置Python每行代码最长500,默认是88,超出88则换行展示,个人觉得不用完全按默认的换行)
Output paths to refresh:$FilePath$
Working directory:$ProjectFileDir$
OK保存,并应用后,编辑代码过程中保存是立刻触发代码格式化,快试试吧~
也可以添加手动格式化、快捷键格式化操作,但是建议也添加上 -l 参数,参考:https://www.jb51.net/article/183982.htm
② 在命令行使用(需要手动操作)
// 进入代码目录执行
black yunzhanghu.py // 直接按默认的格式进行格式化,定义的方法比较长超过88时候,参数换行显示
black -l 500 yunzhanghu.py // 增加-l参数,同上面在pycharm中设置效果一样
命令行支持的参数见官网说明:
Command line options Black doesn't provide many options. You can list them by running black --help: Usage: black [OPTIONS] [SRC]... The uncompromising code formatter. Options: -c, --code TEXT Format the code passed in as a string. -l, --line-length INTEGER How many characters per line to allow. [default: 88] -t, --target-version [py27|py33|py34|py35|py36|py37|py38|py39] Python versions that should be supported by Black's output. [default: per-file auto- detection] --pyi Format all input files like typing stubs regardless of file extension (useful when piping source on standard input). -S, --skip-string-normalization Don't normalize string quotes or prefixes. -C, --skip-magic-trailing-comma Don't use trailing commas as a reason to split lines. --check Don't write the files back, just return the status. Return code 0 means nothing would change. Return code 1 means some files would be reformatted. Return code 123 means there was an internal error. --diff Don't write the files back, just output a diff for each file on stdout. --color / --no-color Show colored diff. Only applies when `--diff` is given. --fast / --safe If --fast given, skip temporary sanity checks. [default: --safe] --include TEXT A regular expression that matches files and directories that should be included on recursive searches. An empty value means all files are included regardless of the name. Use forward slashes for directories on all platforms (Windows, too). Exclusions are calculated first, inclusions later. [default: \.pyi?$] --exclude TEXT A regular expression that matches files and directories that should be excluded on recursive searches. An empty value means no paths are excluded. Use forward slashes for directories on all platforms (Windows, too). Exclusions are calculated first, inclusions later. [default: /(\.direnv|\.eggs|\.git|\. hg|\.mypy_cache|\.nox|\.tox|\.venv|\.svn|_bu ild|buck-out|build|dist)/] --force-exclude TEXT Like --exclude, but files and directories matching this regex will be excluded even when they are passed explicitly as arguments. --stdin-filename TEXT The name of the file when passing it through stdin. Useful to make sure Black will respect --force-exclude option on some editors that rely on using stdin. -q, --quiet Don't emit non-error messages to stderr. Errors are still emitted; silence those with 2>/dev/null. -v, --verbose Also emit messages to stderr about files that were not changed or were ignored due to --exclude=. --version Show the version and exit. --config FILE Read configuration from FILE path. -h, --help Show this message and exit. |