Python-如何读取没有换行符的文件?

Python-如何读取没有换行符的文件?,第1张

Python-如何读取没有换行符的文件

您可以使用读取整个文件并分割行

str.splitlines

temp = file.read().splitlines()

或者,您可以手动删除换行符:

temp = [line[:-1] for line in file]

注意:仅当文件以换行符结尾时,后一种解决方案才有效,否则最后一行将丢失字符。

在大多数情况下,此假设是正确的(尤其是对于文本编辑器创建的文件,这些文件通常确实会添加结尾换行符)。

如果要避免这种情况,可以在文件末尾添加换行符:

with open(the_file, 'r+') as f:    f.seek(-1, 2)  # go at the end of the file    if f.read(1) != 'n':        # add missing newline if not already present        f.write('n')        f.flush()        f.seek(0)    lines = [line[:-1] for line in f]

或更简单的替代方法是strip换行符:

[line.rstrip('n') for line in file]

甚至,尽管很难理解:

[line[:-(line[-1] == 'n') or len(line)+1] for line in file]

它利用了以下事实:的返回值or不是布尔值,而是被评估为true或false的对象。

该readlines方法实际上等效于:

def readlines(self):    lines = []    for line in iter(self.readline, ''):        lines.append(line)    return lines# or equivalentlydef readlines(self):    lines = []    while True:        line = self.readline()        if not line: break        lines.append(line)    return lines

因为

readline()
保留换行符也
readlines()
保留它。

注意:为了

readlines()
使
writelines()
方法对称,不会添加结尾换行符,因此
f2.writelines(f.readlines())
会生成fin 的精确副本f2。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4985337.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存