Python代码格式化工具-Black

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.

猜你喜欢

转载自blog.csdn.net/hiizw/article/details/113122774