我正在尝试找到一种更有效的方法来过滤.csv文件中的ssid列表,然后将过滤结果写入另一个文件。你知道吗
目前,我拥有的代码如下所示(并且它按预期工作):
def ssidFilter():
File = open("/home/pi/unFilter.csv", "r")
for line in File:
if 'Test SSID' in line:
with open("/home/pi/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
if 'Public' in line:
with open("/home/pi/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
if 'HomeNet' in line:
with open("/home/pi/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
if 'Network 1' in line:
with open("/home/pi/gpsMaster/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
if 'LimeOak' in line:
with open("/home/pi/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
if 'BlackCrow' in line:
with open("/home/pi/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
if 'GuestWiFi' in line:
with open("/home/pi/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
File.close()
但是,我想使用一个解决方案,它不会单独运行每个ssid。我想使用一个列表并遍历它。今天早上我问了一个关于zip函数的问题,但是没能用这部分代码来实现。你知道吗
我一直在做的事情(没有成功):
SSID = ['Test SSID' , 'Public' , '....etc...']
File = open("/home/pi/unFilter/csv" , "r")
for line in File:
if SSID in line:
with open("/home/pi/dataLog.csv", "a") as finalFile:
finalFile.write(str(line))
File.close()
此命令的输出在“if SSID in line:”处产生错误,因为“TypeError:”in“需要字符串作为左操作数,而不是list。”
当用“if str(SSID)”替换“if SSID”时,我没有得到任何错误,但也没有返回任何结果,我猜这是因为它搜索的是整个字符串而不是单个元素。你知道吗
我也遇到过同样的类型错误,只是在尝试使用zip时,如果我使用正确的话,它会将其视为元组而不是列表。。你知道吗
File = open('/home/pi/unFilter.csv', 'r')
for line in File:
for new in zip(SSID):
if new in line:
print line
我应该如何处理这个问题?你知道吗
您可以使用
any
遍历关键字一种解决方案是使用
any
(如另一个答案所述),但是在这种情况下,您可以解析 从您的SSID名称行,您可以使用更有效的解决方案只是测试成员的身份 在感兴趣的名称列表中找到SSID名称。你知道吗下面的代码使用
get_ssid
函数,该函数尝试从第行获取SSID名称。你知道吗有了SSID名称,测试就简单多了,速度也快多了。你知道吗
相关问题 更多 >
编程相关推荐