Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python文件的列表中删除元素_Python - Fatal编程技术网

从python文件的列表中删除元素

从python文件的列表中删除元素,python,Python,我有以下清单: array = ['info@aireconsultores.es','integralfitstore@gmail.com','info@jamonesdeseroncheca.com'] 然后我有一个包含以下内容的文本文件: info@aireconsultores.es integralfitstore@gmail.com info@jamonesdeseroncheca.com ertsol1@lubrial2000.com contact@ytcvn.com info

我有以下清单:

array = ['info@aireconsultores.es','integralfitstore@gmail.com','info@jamonesdeseroncheca.com']
然后我有一个包含以下内容的文本文件:

info@aireconsultores.es
integralfitstore@gmail.com
info@jamonesdeseroncheca.com
ertsol1@lubrial2000.com
contact@ytcvn.com
info@centroro.es
如何从列表中删除文本文件中的元素,即,使文件看起来如下所示:

ertsol1@lubrial2000.com
contact@ytcvn.com
info@centroro.es
with open('file.txt') as in_file, open('out.txt', 'w') as out_file:
    for line in in_file:
        if line.strip() not in array:
            out_file.write(line)
def func(emails_to_exclude):
    with open('test.txt') as fr, open('test_2.txt', 'w') as fw:
        for line in fr:
            line = line.strip()
            if len(line) > 0:
                if line not in emails_to_exclude:
                    fw.write('{}\n'.format(line))

if __name__ == '__main__':
    data = [
        'info@aireconsultores.es',
        'integralfitstore@gmail.com',
        'info@jamonesdeseroncheca.com',
    ]
    func(data)

我不会删除行,而是创建一个新文件,删除条目,如下所示:

ertsol1@lubrial2000.com
contact@ytcvn.com
info@centroro.es
with open('file.txt') as in_file, open('out.txt', 'w') as out_file:
    for line in in_file:
        if line.strip() not in array:
            out_file.write(line)
def func(emails_to_exclude):
    with open('test.txt') as fr, open('test_2.txt', 'w') as fw:
        for line in fr:
            line = line.strip()
            if len(line) > 0:
                if line not in emails_to_exclude:
                    fw.write('{}\n'.format(line))

if __name__ == '__main__':
    data = [
        'info@aireconsultores.es',
        'integralfitstore@gmail.com',
        'info@jamonesdeseroncheca.com',
    ]
    func(data)
也许是这样:

ertsol1@lubrial2000.com
contact@ytcvn.com
info@centroro.es
with open('file.txt') as in_file, open('out.txt', 'w') as out_file:
    for line in in_file:
        if line.strip() not in array:
            out_file.write(line)
def func(emails_to_exclude):
    with open('test.txt') as fr, open('test_2.txt', 'w') as fw:
        for line in fr:
            line = line.strip()
            if len(line) > 0:
                if line not in emails_to_exclude:
                    fw.write('{}\n'.format(line))

if __name__ == '__main__':
    data = [
        'info@aireconsultores.es',
        'integralfitstore@gmail.com',
        'info@jamonesdeseroncheca.com',
    ]
    func(data)

您可以将一个数组转换为一个集合,我们称之为s1,也可以将源文件中的数据读取为一个集合,我们称之为s2。这些集合之间的差异是期望的结果,即结果=s2。差异s1

array = ['info@aireconsultores.es', 'integralfitstore@gmail.com', 'info@jamonesdeseroncheca.com']

with open('data.txt', 'r') as src:
    src_data = set(map(str.strip, src.readlines()))

with open('out.txt', 'w') as dst:
    dst.write("\n".join(src_data.difference(set(array))))

你说你在一个列表中有六封电子邮件,在一个名为array的列表中有三封你想排除的电子邮件。您可以使用numpy排除这三封电子邮件:

import numpy as np
my_list = np.array(["info@aireconsultores.es","integralfitstore@gmail.com","info@jamonesdeseroncheca.com","ertsol1@lubrial2000.com","contact@ytcvn.com","info@centroro.es"])
my_array = ['info@aireconsultores.es','integralfitstore@gmail.com','info@jamonesdeseroncheca.com']
my_list[~np.isin(my_list, my_array)]
但是,如果您有一个.txt文件中包含六封电子邮件的列表,那么我建议您将该文件作为pandas数据帧读取,然后将名为array的列表中的邮件排除在外:


你的描述有点混乱。您是从列表中还是从文件中删除字符串?无论哪种情况,我都建议将文本文件加载到列表中。然后您可以比较和/或迭代两个列表。如果需要新文件,请将适当的列表写入文件。为什么从列表中删除项目会使文件看起来有所不同?