Python flake8 py 错误地报告 W391(文件末尾没有换行符)

2023-11-22

W391 规定文件末尾应该有一个(且只有一个)空行。然而,当文件末尾至少有一个换行符时,flake8 会报告错误:

$ cat /tmp/test.py
def hello():
    print('hello')


hello()


$ hexdump -C /tmp/test.py
00000000  64 65 66 20 68 65 6c 6c  6f 28 29 3a 0a 20 20 20  |def hello():.   |
00000010  20 70 72 69 6e 74 28 27  68 65 6c 6c 6f 27 29 0a  | print('hello').|
00000020  0a 0a 68 65 6c 6c 6f 28  29 0a 0a                 |..hello()..|
0000002b

您可以在上面看到,文件末尾实际上只有一个空行(0a is \n)。但是,当我运行 flake8 时,出现 W391 错误:

$ flake8 /tmp/test.py
/tmp/test.py:6:1: W391 blank line at end of file

这是为什么?


显然,vim 会自动为每个文件添加换行符,这让我误以为最后一个空白行不存在。随着时间的推移,这个隐含的换行符让我误以为最后的两个换行符创建了一个空行。

所以,警告是正确的。应该只有一个\n在文件末尾。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python flake8 py 错误地报告 W391(文件末尾没有换行符) 的相关文章

随机推荐

  • 蓝牙 LE 外围设备在与蓝牙 LE 中央设备连接时停止广告

    我想开发像蓝牙 LE 外围设备这样的应用程序 它会在与蓝牙 LE 中央设备连接时停止广告 并限制与多个蓝牙 LE 中央设备连接的蓝牙 LE 外围设备 一台蓝牙 LE 外围设备一次仅与一台蓝牙 LE 中心连接 成功连接蓝牙 LE 外围设备和蓝
  • Rhino Mocks 上的模拟和存根有什么区别?

    我对此还没有玩够 通常使用模拟 但我想知道这两者之间有什么区别 以及何时在 Rhino Mocks 上使用其中之一 Update 我还在中找到了我的问题的答案阿延德的话 存根和模拟之间的区别您可以在本文中获得这些术语的实际定义 模拟不是存根
  • 如何使用给定模式 tail -f 最新日志文件

    我使用一些日志系统 它每小时创建一个日志文件 如下所示 SoftwareLog 2010 08 01 08 SoftwareLog 2010 08 01 09 SoftwareLog 2010 08 01 10 我试图跟踪最新的日志文件给出
  • Google Keep 如何在保存录音的同时进行语音识别?

    Android 的 SpeechRecognizer 显然不允许将您正在进行语音识别的输入记录到音频文件中 也就是说 要么使用 MediaRecorder 或 AudioRecord 录制语音 要么使用 SpeechRecognizer 进
  • JavaScript 中所有可打印字符的正则表达式

    寻找验证所有可打印字符的正则表达式 正则表达式仅需要在 JavaScript 中使用 我已经经历过this帖子 但主要讨论 net Java 和 C 但不讨论 JavaScript 您必须只允许这些可打印字符 a z A Z 0 9 以及三
  • 导入错误:无法在新安装上导入名称“opentype”

    我刚刚创建了一个 Google Cloud 计算引擎 安装了带有 pip 和 pip3 的 google cloud 软件包 并且在使用 python3 启动脚本时遇到以下错误 from google cloud import bigque
  • 无法加载程序集,HRESULT 异常:0x80131040

    例外 无法加载文件或程序集 WPFVisifire Charts Version 4 1 0 0 Culture neutral PublicKeyToken 99d724542e4db593 或其依赖项之一 找到的程序集的清单定义与程序集
  • 正则表达式:如何只允许大于零的整数

    我尝试了以下方法 只允许在文本框中输入整数 这很好用 但它允许其中有零 我还可以添加其他内容来防止添加零吗 d 这将允许 10 但不允许 01 并且只允许由数字组成的数字 即没有句点或减号 但也没有加号 科学记数法等 1 9 0 9
  • 如何强制 MVC 验证 IValidatableObject

    看起来 当 MVC 验证模型时 它首先运行 DataAnnotation 属性 如必需的或范围 如果其中任何一个失败 它会跳过在我的 IValidatableObject 模型上运行 Validate 方法 即使其他验证失败 是否有办法让
  • 在 SwiftUI 中将视图动画化以向上滑动并点击隐藏

    我创建了一个横幅修改器 从顶部显示横幅 这动画效果很好 但是 当我点击以关闭它时 它根本没有动画 只是隐藏 即使点击手势动作已withAnimation包裹它 struct BannerModifier ViewModifier Bindi
  • 无法从 QQmlPropertyMap 子类中的 QML 调用槽或 Q_INVOKABLE

    我正在尝试试驾QQmlPropertyMap班级 如果我可以对它进行子类化 它似乎可以很好地满足我的需求 文档here甚至给出了一些关于如何对其进行子类化的基本说明 所述文档还表明该类派生自QObject 就其价值而言 我在 Qt 5 0
  • 动态添加新元素后,jQuery 选择器不会更新

    我的选择器是 section attendance input last 但是 我将另一个输入附加到section attendance 我希望选择器现在选择该元素 因为它应该如此 因为 last 然而 由于某种原因 它没有 我不太确定为什
  • C++函数有默认返回值吗? [复制]

    这个问题在这里已经有答案了 我很惊讶包含以下代码行的文件已成功编译并且链接器生成可执行文件 我认为所有功能 除了main 必须有一个有效的return语句 除非返回类型是void int foo double bar int main 我缺
  • 从 CMD 返回错误代码到 Powershell

    我正在编写 Mssql 安装脚本 我想获得静默 mssql 安装的结果 在我的 PowerShell 脚本中 我运行以下命令 result start cmd c D SQL2008R2 SQL2008R2 setup exe CONFIG
  • 将 blob 文件发送到服务器

    我正在尝试将录音发送到服务器并将其另存为 wav 我在前端使用 Angular 在服务器上使用 net core 我能够录制 然后制作一个 音频 wav 类型的斑点 为了将其发送到服务器 我将其转换为数组缓冲区 然后将数组缓冲区转换为 Ba
  • 将音频与视频结合(不使用 ffmpeg)- Java

    我正在构建一个小程序来捕获屏幕和麦克风输入 音频 我可以单独录制这些文件 但找不到将这些文件组合起来制作新的音频视频的方法 视频文件位于 mov格式和音频是 wav格式 它们的长度完全相同 有什么办法可以合并这些文件吗 我尝试过 Java
  • Xcode 4.2 首选项“支持无线连接设备”有什么作用?

    在 Xcode 4 2 中 常规 选项卡下有一个名为 iOS 设备发现 的新首选项 其中包含 支持无线连接设备 复选框选项 这个选项有什么作用 检查后 我们如何使用这个新功能 将您的设备插入机器 转到 iTunes gt 设备 gt 摘要页
  • 将 iter() 替换为 par_iter():无法在“Fn”闭包中捕获的外部变量中可变地借用数据

    我本来希望更换一个iter with Rayon s par iter 在这样一个相当简单的情况下 但我没有这样做 之前的代码 indexes to increment iter for each x self some data x as
  • Angular-ui 的工具提示在 ng-grid 中无法正确显示

    我一直在寻找在 ng grid 上显示工具提示的解决方案 但没有成功 当我使用 ng grid 上的 cellTemplate 自定义单元格以包含工具提示时 我遇到了各种问题 工具提示要么不显示 要么表现奇怪 如 plunker 中所示 h
  • Python flake8 py 错误地报告 W391(文件末尾没有换行符)

    W391 规定文件末尾应该有一个 且只有一个 空行 然而 当文件末尾至少有一个换行符时 flake8 会报告错误 cat tmp test py def hello print hello hello hexdump C tmp test