如何使用Python 2.7替换字符串列表中的部分字符串

如何使用Python 2.7替换字符串列表中的部分字符串,python,python-2.7,list,Python,Python 2.7,List,我有一个从csv文件读取的唯一文件路径列表,我想通过多种方式筛选该列表。其中之一是排除包含特定单词的路径。我已经创建了一个单词列表,但我不知道如何使用它来过滤路径。下面的代码不起作用 with open("C:\MXD\dataSources.csv") as csvfile: pathList = csvfile.readlines() vendMastList = ["Vendor", "vendor", "master", "Master"] for pth in pathLis

我有一个从csv文件读取的唯一文件路径列表,我想通过多种方式筛选该列表。其中之一是排除包含特定单词的路径。我已经创建了一个单词列表,但我不知道如何使用它来过滤路径。下面的代码不起作用

with open("C:\MXD\dataSources.csv") as csvfile:
    pathList = csvfile.readlines()

vendMastList = ["Vendor", "vendor", "master", "Master"]
for pth in pathList:
    for vendMast in vendMastList:
        if vendMast not in pth:
            print pth

有了这么短的列表,你就可以检查每一个了

for path in pathList:
    if not 'Vendor' in path and not 'vendor' in path and \ 
        not 'Master' in path and not 'Master' in path:

        print path

如果您的列表较长,那么我将遍历每个工作的列表,并使用pop删除包含该单词的任何路径。pop的文档,list.pop(i)

有一个简短的列表,您只需检查每个列表

for path in pathList:
    if not 'Vendor' in path and not 'vendor' in path and \ 
        not 'Master' in path and not 'Master' in path:

        print path

如果您的列表较长,那么我将遍历每个工作的列表,并使用pop删除包含该单词的任何路径。pop的文档,list.pop(i)

我认为您需要做的就是替换第二个for循环:

for path in pathList:
    if not any(name in path
               for name in vendMastList): 
        print(path)

这将检查列表中是否有任何单词出现在路径中:如果没有,则将其打印出来

我认为您需要做的就是替换第二个for循环:

for path in pathList:
    if not any(name in path
               for name in vendMastList): 
        print(path)

检查列表中单词“<代码>任何< /代码>是否出现在路径中:如果没有,则打印出

,因为您需要考虑路径中没有包含单词,使用标记来记录路径中是否包含某个单词是最直观的方法。 修复它:


因为您需要考虑路径中没有包含单词,使用标记来记录路径中是否包含某个单词是最直观的方法。 修复它:


如果没有csv文件示例,这有点难以衡量,可能下次再添加它。:)我也不确定您是在阅读文本文件,即
readlines()
还是从
library csv
读取实际的csv文件
csv.reader(filename,delimiter=“”)
,即
导入csv
,将数据读取为列和行。第一行将组成列,其余为行

如果希望像在
readlines()
中一样将其作为文本文件读取,则需要执行以下操作:

with open("C:\MXD\dataSources.csv") as csvfile:
    pathList = csvfile.read().splitlines() # removes newlines "\n" characters

vendMastList = ["Vendor", "vendor", "master", "Master"] 

for line in pathList:
    # print(line) # to see what is happening
    result = line.split(",")
    # print(result) # etc
    for i in range(len(result)):
        for j in range(len(vendMastList)):
            if result[i] != vendMastList[j]:
                new_result = result

print(new_result)

csvfile.close # Don't forget to close it :)    

如果您不确定事情进展如何,请插入一行
打印
,查看循环每个阶段的输出等。

如果没有csv文件示例,这有点难以衡量,可能下次添加。:)我也不确定您是在阅读文本文件,即
readlines()
还是从
library csv
读取实际的csv文件
csv.reader(filename,delimiter=“”)
,即
导入csv
,将数据读取为列和行。第一行将组成列,其余为行

如果希望像在
readlines()
中一样将其作为文本文件读取,则需要执行以下操作:

with open("C:\MXD\dataSources.csv") as csvfile:
    pathList = csvfile.read().splitlines() # removes newlines "\n" characters

vendMastList = ["Vendor", "vendor", "master", "Master"] 

for line in pathList:
    # print(line) # to see what is happening
    result = line.split(",")
    # print(result) # etc
    for i in range(len(result)):
        for j in range(len(vendMastList)):
            if result[i] != vendMastList[j]:
                new_result = result

print(new_result)

csvfile.close # Don't forget to close it :)    
如果您不确定事情进展如何,请输入
打印
行,查看循环的每个阶段的输出情况等