问题描述:文件tesxt.txt内容,如下,按行读取文件后,打印到控制台出现多个空行的问题。
使用部分代码:
#代码1
with open('test.txt','r') as f:
lines = f.readlines()
for line in lines:
print(line)
f.close()
#代码2.
f = open("test.txt","rt") #网上很多说换成rU,或者rt。
content = f.readlines()
for i in content:
print(i)
f.close()
输出结果:出现多个空行的问题
ccccccccccd888888888
ddddddddddddddddd00
333343434343fsddf
safsdfasdfsadfsadsf
解决办法:
网上很多说是因为 Unix 平台的换行符是 n,而 windows 平台用的是 rn 两个 ASCII 字符来表示换行,python 内部采用的是 n 来表示换行符。t 是 windows 平台特有的所谓 text mode(文本模式),所有文件的打开模式 换成rt 模式下,python 在读取文本时会自动把 rn 转换成 n。还有什么rU模式,或者用 strip()去除,或者用if条件判断n换行符。其实没那么烦。
因为print()打印时默认加了换行,所以加上,如果出现文件输出有空行的情况直接将print的换行取消即可。给print()加一个取消自动换行的end=""参数即可:print(line,end=""),跟windows,unix没有关系。就是这么简单。
#代码1
with open('test.txt','r') as f:
lines = f.readlines()
for line in lines:
print(line,end="")
f.close()
#代码2.
f = open("test.txt","rt") #网上很多说换成rU,或者rt。
content = f.readlines()
for i in content:
print(i,end="")
f.close()
==========================================================
ccccccccccd888888888
ddddddddddddddddd00
333343434343fsddf
safsdfasdfsadfsadsf
ccccccccccd888888888
ddddddddddddddddd00
333343434343fsddf
safsdfasdfsadfsadsf
统一声明:关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈。关于转载博客,如有原创链接会声明;如找不到原创链接,在此声明如有侵权请联系删除哈。