阅读文本文件并查找某行是否以特定单词结尾?

时间:2018-01-19 20:10:34

标签: python

我逐行阅读了我的文本文件,想知道一行是否以特定词语结束。

我的代码看起来像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

2 个答案:

答案 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
相关问题