首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将yapf应用于目录下的每个python文件?

如何将yapf应用于目录下的每个python文件?
EN

Stack Overflow用户
提问于 2018-11-18 03:02:50
回答 1查看 13.1K关注 0票数 12

我已经在一个项目下安装了Google (又是另一个python格式化程序),并尝试将所有python文件格式化到位,但是我得到了以下错误:

代码语言:javascript
复制
$ yapf -i -r files **.py
yapf: Input filenames did not match any python files

为什么雅普夫不能理解模式?我应该怎么做才能达到同样的目的呢?

编辑我也按建议尝试了yapf -ir,但是我得到了:

代码语言:javascript
复制
$ yapf -ir
usage: yapf [-h] [-v] [-d | -i] [-r | -l START-END] [-e PATTERN]
            [--style STYLE] [--style-help] [--no-local-style] [-p] [-vv]
            [files [files ...]]
yapf: error: cannot use --in-place or --diff flags when reading from stdin

这很奇怪,因为我没有读史丁的书

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-18 04:21:32

第一个问题是,通配符扩展发生在shell中,甚至在命令行执行之前。当你跑步时:

代码语言:javascript
复制
somecommand *.py

该命令不知道您输入了一个*。它只知道你传递了一个文件列表。换句话说,yapf无法理解该模式,因为它从未看到该模式。

第二个问题是,**不是一个有效的shell文件全局模式。这在语义上等同于*,因此运行yapf -ir files **.py只能处理当前目录和files目录中包含的任何.py文件。

如果您希望从当前目录开始,在所有yapf文件上递归运行,那么有几种解决方案。最简单的可能是:

代码语言:javascript
复制
yapf -ir .

这将处理当前目录中的所有.py文件及其子目录。如果您希望更多地控制文件的选择,请使用findxargs

代码语言:javascript
复制
find . -name '*.py' -print0 | xargs -0 yapf -i
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53357514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档