在 Python 中处理 CSV 数据:Wireshark CSV,comma/list 问题
Processing CSV data in Python: Wireshark CSV, comma/list issue
因此,我试图进一步分解此 CSV 数据,并获取一段特定的逗号分隔文本。它是一个 wireshark CSV。
import csv
with open('wifi.csv', 'rt') as csvfile:
reader = csv.reader(csvfile, delimiter='\n', quotechar='\n')
for row in reader:
print(" ".join(row[0:1]))
只打印行。这些行包含用双引号括起来的逗号分隔对象。我正在尝试找到一种有效访问这些内容的方法。
输出:“85”,“23.128318”,“52.86.227.189”,“10.0.0.23”,"TCP",“56”,[TCP 重传] 443 > 61541 [FIN,ACK] Seq=32 Ack=33 Win=118 Len=0"
"86","26.766224","fe80::1286:8cff:fe4f:d04d","ff02::1","ICMPv6","174","Router Advertisement from 10:86:8c:4f:d0:4d"
"87","27.479193","10.0.0.23","104.70.61.253","SSL","55","Continuation Data"
我想单独访问这些,所以我可以抓住一个特定的。但它不像列表或任何东西,它认为它是字符串索引。
csv 模块能够读取这种格式的数据和return作为字符串列表的行。我认为您的问题是您正在获取列表并将其连接在一起。
with open('wifi.csv') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print("The source is %s" % row[3])
print("The protocol is %s" % row[4])
应该可以。您不需要传递 delimiter 或 quotechar 参数。在这种情况下,它们会导致您出现问题,因为您说每个元素都由换行符分隔(而不是默认的逗号)。所以你最终将整行视为一个元素。
您的打开方式为通过 "rt",这不是有效模式。 "r"(读取)是默认值。如果你想同时读取和写入文件(这里不是这种情况),你可以传递 "r+" (加号是第二个字符)。
因此,我试图进一步分解此 CSV 数据,并获取一段特定的逗号分隔文本。它是一个 wireshark CSV。
import csv
with open('wifi.csv', 'rt') as csvfile:
reader = csv.reader(csvfile, delimiter='\n', quotechar='\n')
for row in reader:
print(" ".join(row[0:1]))
只打印行。这些行包含用双引号括起来的逗号分隔对象。我正在尝试找到一种有效访问这些内容的方法。
输出:“85”,“23.128318”,“52.86.227.189”,“10.0.0.23”,"TCP",“56”,[TCP 重传] 443 > 61541 [FIN,ACK] Seq=32 Ack=33 Win=118 Len=0" "86","26.766224","fe80::1286:8cff:fe4f:d04d","ff02::1","ICMPv6","174","Router Advertisement from 10:86:8c:4f:d0:4d" "87","27.479193","10.0.0.23","104.70.61.253","SSL","55","Continuation Data"
我想单独访问这些,所以我可以抓住一个特定的。但它不像列表或任何东西,它认为它是字符串索引。
csv 模块能够读取这种格式的数据和return作为字符串列表的行。我认为您的问题是您正在获取列表并将其连接在一起。
with open('wifi.csv') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print("The source is %s" % row[3])
print("The protocol is %s" % row[4])
应该可以。您不需要传递 delimiter 或 quotechar 参数。在这种情况下,它们会导致您出现问题,因为您说每个元素都由换行符分隔(而不是默认的逗号)。所以你最终将整行视为一个元素。
您的打开方式为通过 "rt",这不是有效模式。 "r"(读取)是默认值。如果你想同时读取和写入文件(这里不是这种情况),你可以传递 "r+" (加号是第二个字符)。