在其他列表中创建包含字符串的行列表

时间:2017-08-01 16:17:47

标签: python python-3.x

我有一个文本文件,Input.txt
Input.txt看起来像这样:

word1 word2 word3 word4 "D:\path\string" word5

单词随意改变一行到下一行。我有一个列表(让我们称之为List1)有很多不同的字符串,我需要为Input.txt中的每一行创建一个新列表,其中“string”部分与List1中的任何一个元素相同。

我最接近的是这样做:

strings = List1
with open("Input.txt", 'r') as file:
    for line in file:
        if any(s in line for s in strings):
          print(line)

但是这只打印出我想要的线条(如果我复制它打印的内容,它没有正确格式化(例如,它只是将所有行打印为一个字符串而不是按行分隔) - 我可以格式化它正确,但我想找到最有效的方法来做到这一点)。

简而言之,制作包含List1字符串的每一行的列表(比如说List2)最有效和惯用的方法是什么,这样如果我将List2写入另一个文本文件,List2就会有一个元素每行?

1 个答案:

答案 0 :(得分:0)

试试这个

strings = []
with open("Input.txt", 'r') as f:
    lines = f.readlines()
    print lines

如果不行则试试这个

strings = []
with open("Input.txt", 'r') as f:
    lines = f.read().split(' ')
    print lines