循环读取多个 csv 文件将无法完成

问题描述

我正在尝试读取多个 csv 文件,这些文件有一列包含网站列表。该列没有标题。我正在尝试使用 whois 功能提取网站的创建日期。我创建了一个循环来导入 csv 文件,创建一个新的 csv 文件,读取一行,拉出创建日期,将数字、网站和创建日期写入一个新的 csv 文件关闭两个 csv 文件,然后重复过程。但是,我发现第一个 csv 文件完成后,它不会导入下一个文件,并且代码也不会完成运行。这是我的代码

import whois
import csv 
import os
import time

location = "directory"

old = 'filename_old'
new = 'filename_new'
  
for i in os.listdir(location):
    if i.endswith(".csv"):  
        with open(location + i,"r") as CSVfile:
            CSVfileReader = csv.reader(CSVfile,delimiter = ",")
            CSV2file = open(location + new + i,"a")

            count = 1
            cont = True 

            try: 
                while cont:
                    for row in CSVfileReader:
                        key = row[0].rstrip()
     
                        for links in whois.whois(key).creation_date:
                            print(links)
                            CSVFileWriter = csv.writer(CSV2file)
                            CSVFileWriter.writerow([count,key,links])
                            print('count:',count)
                            count = count + 1
                            time.sleep(0.9)  
            except:
                cont = False
                print("done with csv")

                CSVfile.close()
                CSV2file.close()

else:
    print("The End")

输出如下:

runfile('direc')
2019-05-24 01:14:11
count: 1
2019-05-23 20:14:11
count: 2
2009-06-05 17:24:02
count: 3
2009-06-05 10:21:19
count: 4
2006-04-10 21:07:52
count: 5
2006-04-10 16:07:52
count: 6
2019-02-19 22:00:45
count: 7
2019-02-19 17:00:45
count: 8
2001-10-11 23:01:30
count: 9
2001-10-11 18:01:30
count: 10

但它从不打印“done with csv”或“the end”。只有当我阻止它运行时,它才会打印出来。

解决方法

您的程序卡在 while cont: 循环中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...