猿问

(如果变量中有字符串)语句未筛选出数据

尝试过滤掉字符串中没有“PC”的数据,但它似乎没有捕获任何内容,只是转到其他位置。不确定csvRow是否是一个字符串,也许这就是为什么它不起作用,但我刚刚开始Python和dunno如何解释它。


csvRow 返回的示例数据:


['0', '0', '30', 'Testing Unit', 'True', 'COMP_PC', 'COMP_PC']

['0', '0', '30', 'Prod Unit', 'True', 'ASSM_UL', 'ASSM_UL']

法典:


for csvRow in reader(csvRows[2:]):


    if "PC" in csvRow: 

        for csvValue in csvRow:

            values += csvValue + "\t"

        values = values[:-1] + "\r\n"

    else:

        continue

编辑:


为此拼凑出了一个解决方案,尽管我不确定它是否有效。有什么提示吗?


for csvRow in reader(csvRows[2:]):

    for csvValue in csvRow:

        if "PC" in csvValue: 

            for csvValue2 in csvRow:

                values += csvValue2 + "\t"

            values = values[:-1] + "\r\n"

            break

        else:

            continue


慕桂英546537
浏览 82回答 2
2回答

DIEA

即使您想使用替代分隔符(即 而不是 ),使用csv模块仍然是一个好主意。它将更好地产生格式良好的输出。\t,下面是一个示例:import csvimport io# Representing csvRows as a 2D array, hopefully approximating your input.csvRows = [    ['0', '0', '30', 'Testing Unit', 'True', 'COMP_PC', 'COMP_PC'],    ['0', '0', '30', 'Prod Unit', 'True', 'ASSM_UL', 'ASSM_UL'],]# Using a StringIO instance to capture the output, alternatively you# can easily write to a file.results = io.StringIO()writer = csv.writer(results, delimiter='\t')# Process your data.for row in csvRows:    if any('PC' in value for value in row):        writer.writerow(row)# Print the results.output = results.getvalue()print(output)# Use repr() to verify that each line is terminated with '\r\n'.print(repr(output))输出:$ python3 example.py0       0       30      Testing Unit    True    COMP_PC COMP_PC'0\t0\t30\tTesting Unit\tTrue\tCOMP_PC\tCOMP_PC\r\n'

喵喔喔

想通了,正如Furas所说:"PC" in string可以检查“PC”是否是更长字符串的一部分。 检查列表中是否有确切的字符串“PC” - 但它无法检查“PC”是否是此列表中较长字符串的一部分。"PC" in list只需要迭代列表并检查那里。for csvRow in reader(csvRows[2:]):    for csvValue in csvRow:        if "PC" in csvValue:             for csvValue2 in csvRow:                values += csvValue2 + "\t"            values = values[:-1] + "\r\n"            break        else:            continue
随时随地看视频慕课网APP

相关分类

Python
我要回答