import pathlib
file_path = 'vocab.txt'
vocab = pathlib.Path(file_path).read_text().splitlines()
print(len(vocab))
count = 0
with open(file_path, 'r', encoding='utf8') as f:
for line in f:
count += 1
print(count)
Run Code Online (Sandbox Code Playgroud)
这两个计数是 2122 和 2120。它们不应该是相同的吗?
因此,查看 的文档str.splitlines
,我们发现此方法的行分隔符是“通用换行符”的超集:
此方法在以下行边界上进行分割。特别是,边界是通用换行符的超集。
表示 | 描述 |
---|---|
\n |
换行 |
\r |
回车 |
\r\n |
回车+换行 |
\v 或者\x0b |
线制表 |
\f 或者\x0c |
换页 |
\x1c |
文件分隔符 |
\x1d |
组分隔符 |
\x1e |
记录分隔符 |
\x85 |
下一行(C1 控制代码) |
\u2028 |
行分隔符 |
\u2029 |
段落分隔符 |
默认情况下,文本文件的一行将使用通用换行符方法来解释分隔符,来自文档:
当从流中读取输入时,如果
newline
是None
,则启用通用换行符模式。输入中的行可以以'\n'
、'\r'
或 结尾'\r\n'
,这些行在'\n'
返回给调用者之前会被转换为。如果换行符为''
,则启用通用换行符模式,但行结尾会以未翻译的形式返回给调用者。如果换行符具有任何其他合法值,则输入行仅由给定字符串终止,并且行结尾会以未翻译的形式返回给调用者。
归档时间: |
|
查看次数: |
507 次 |
最近记录: |