我编写这段代码是为了从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发布于 2018-11-27 20:24:22
您不需要next() (除非您有意跳过行)。for循环是为您调用的。
只是
with open("file.csv", newline='') as f:
reader = csv.reader(f, delimiter="\t")
for row in reader:
# do row things 参考文献 usage
发布于 2018-11-27 20:42:25
您还可以省略任何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))https://stackoverflow.com/questions/53507538
复制相似问题