Naomi_Rbt
2016-09-13 15:42
endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。
\n 换行符,相当于转义,为什么不加的话就找不到匹配项呢?是否所有用到endswith()方法的语句在条件结尾都要加上"\n"?
谢谢。
def find_imooc(fname):
f = open(fname)
for line in f:
if line.startswith('imooc') and line.endswith("imooc\n"):
print line
find_imooc("test")
(1)linux下
vi test 111 222 333
(2) python下
for循环
f = open('test')
for i in f:
print i
显示会多一个换行符,如下
111
222
333
f.seek(0)
s = []
for i in f:
s.append(i)
print s
显示:(会有一个\n) 只是我们肉眼看不到。
['111\n', '222\n', '333\n']
为什么是\n ? os.linesep字符串给出当前平台使用的行终止符 (windows ‘\r’)
import os
os.linesep所以你的问题,是\n结尾。
linux下文本中的换行符是\n ,所以每一行的结尾一定有\n
还有就是windows下的txt中,换行符是\r\n所以结尾就是\r\n.
应该是f读取文件的形式其中每行结尾都包含换行符,不同于自己赋值的string不包含换行符,不是所有用到endswith()方法的语句在条件结尾都要加上"\n",主要是看这个string本身在赋值的时候是否有换行符的问题
python正则表达式
80572 学习 · 176 问题
相似问题