我逐行阅读了我的文本文件,想知道一行是否以特定词语结束。
我的代码看起来像lika,但结果总是变错
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import wget
with open("data.txt","r") as f:
text = f.readlines()
for line in text:
print line
result = line.endswith("jpg")
print(result)
文本文件如下:
file1.jpg
file2.jpg
file3.png
file4.html
答案 0 :(得分:0)
来自docs,
f.readline()从文件中读取一行;换行符(\ n)留在字符串的末尾,如果文件没有以换行符结尾,则只在文件的最后一行省略
所以,在显示的文字之后,所有的行都以隐藏的字符结尾。您可以在支票中包含此信息,也可以在运行支票前找到剥离方式
答案 1 :(得分:0)
问题是f.readlines()
在字符串的末尾添加了一个新行\n
。
如果您尝试print (text)
,您将获得演示此行为的以下输出:
['file1.jpg\n', 'file2.jpg\n', 'file3.png\n', 'file4.html']
您可以使用rstrip('\n')
从字符串中删除换行符:
import os
with open("data.txt","r") as f:
text = f.readlines()
for line in text:
print (line.rstrip('\n'))
result = line.rstrip('\n').endswith(".jpg")
print(result)
现在提供正确的输出:
file1.jpg
True
file2.jpg
True
file3.png
False
file4.html
False