【问题标题】:What is the non deprecated version of open "U" mode打开“U”模式的非弃用版本是什么
【发布时间】:2019-11-09 12:08:07
【问题描述】:

我正在尝试使用以下方式在 python 中读取文本文件:

with open("Keys.txt","rU") as csvfile:

但是这会产生折旧警告。

DeprecationWarning: 'U' mode is deprecated

对于文本/csv 文件的这种访问模式,不推荐使用的版本是什么。

【问题讨论】:

  • 在 Python >= 3 中,使用换行符,默认为 newline=None,类似于 newline='',除了它还将换行符转换为 \n。我不确定其中哪个等同于 mode='U' 此处引用 stackoverflow.com/questions/6726953/…
  • @KyleJ:U 行为是默认行为的一部分。您只需将其删除即可。正如你所说,csv 需要newline='',但这与U 无关(可以删除)。

标签: python deprecated


【解决方案1】:

这是现在的默认行为,所以你可以简单地省略它:

with open("Keys.txt", "r") as csvfile:

更多信息

允许有一个额外的模式字符'U',它不再有任何作用,并被视为已弃用。它之前在文本模式下启用了universal newlines,这成为 Python 3.0 中的默认行为。有关详细信息,请参阅newline 参数的文档。

来源open() - Python 3.7.4 documentation

Python 3 库中的 open() function 有一个 newline 参数。将其设置为 None 启用通用换行符。这是公认的方法,使mode='U' 参数变得多余。

使用newline=None 启用通用换行模式(这是默认设置)。

来源Robert Harvey's answer 关于“为什么 Python 中不推荐使用通用换行模式?”关于软件工程

【讨论】:

    猜你喜欢
    • 2022-12-15
    • 2011-08-12
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2012-02-18
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多