我编写了这段代码,以从csv格式的文件中读取一些行,但是它给出了错误“ StopIteration”,我认为这是因为它到达了文件的结尾...
Python3代码如下:
with open("trafficpcap.txt",newline = "") as filedns:
readerpcap = csv.reader(filedns,delimiter = "\t")
rowDns = []
for count in readerpcap:
rowDns = next(readerpcap)
print("linea letta: ",rowDns)
if(rowDns[0].find(ipdst) != -1):
i = 0
ipdns = ""
rowd = rowDns[0]
while i < len(rowDns[0]):
if(rowd[i] != ","):
ipdns = ipdns + rowd[i]
i = i + 1
else: break
也许for
循环出了问题?
这是输入文件的示例:
52.48.184.207,52.16.213.80 pnp.aptoide.com
216.58.198.33 lh4.ggpht.com
193.206.135.13 r2---sn-b5gg-ca9e.gvt1.com
34.246.212.92,34.240.116.214 webservices.aptwords.net
151.101.66.202,151.101.130.202,151.101.2.202,151.101.194.202 sdk.foursquare.com
31.13.90.2 graph.facebook.com
13.32.123.222,13.32.123.156,13.32.123.136,13.32.123.7 config2.mparticle.com
答案 0 :(得分:4)
您从不需要next()
(除非您有意跳过行)。 for循环正在为您调用
就是
with open("file.csv", newline='') as f:
reader = csv.reader(f, delimiter="\t")
for row in reader:
# do row things
答案 1 :(得分:0)
您还可以省略任何csv库,只需打开文件并读取(加载到列表/嵌套列表)即可:
#1
file_name = 'file_name.txt'
file_loaded = list()
with open(file_name, 'r') as file:
file_loaded = file.readlines()
#2
file_name = 'file_name.txt'
delimeter=','
file_loaded = list()
with open(file_name, 'r') as file:
for line in file:
file_loaded.append(line.split(delimeter))