我想阅读Unix
中某个路径上显示的CSV文件 - /var/lib/Folder/abc.csv
我使用下面的代码来读取此文件,但看起来它没有返回任何行,因此它不会进入 for 循环。
file_path = "/var/lib/Folder/abc.csv"
with open(file_path, newline='') as csv_file:
reader = csv.reader(csv_file)
for row in reader:
logging.debug(str(datetime.datetime.now()) + " Checking rows...")
logging.debug(str(datetime.datetime.now()) + " Row(" + str(count) + ") = " + row)
CSV文件看起来像 -
"Account ID","Detail","Description","Date created"
"123456","Customer","Savings","2017/10/24"
我使用的是Python 2.7
当我在当地尝试时,这是有效的。但我实际上是使用Jenkins运行它,文件放在我的Jenkins主服务器中。我已经使用下面的代码服务器将该文件复制到jenkins - 使用ssh_shell.open(path + fileName,“rb”)作为remote_file:使用open(path + fileName,“wb”)作为local_file:shutil.copyfileobj(remote_file, local_file)在此之后我试图读取文件,它无法正常工作。即不进入那个for循环。有什么想法吗?
答案 0 :(得分:0)
尝试将row
更改为str(row)
file_path = "/var/lib/Folder/abc.csv"
with open(file_path, newline='') as csv_file:
reader = csv.reader(csv_file)
for row in reader:
logging.debug(str(datetime.datetime.now()) + " Checking rows...")
logging.debug(str(datetime.datetime.now()) + " Row(" + str(count) + ") = " + str(row))
答案 1 :(得分:0)
您可以尝试以下方法:
reader = csv.reader(csv_file, delimiter=',', quotechar='"')
另外,请尝试查看“读者”实际包含的内容。如果未输入for循环,则表示内容未正确读取。尝试从那里开始调试。