for循环耗时太长而无法产生输出

时间:2016-12-27 04:55:41

标签: python powershell if-statement for-loop

我有三个excel文件,Book1,Book2,Book3。它们中的每一个都包含11000行和10000列。并且每个单元格包含观察的数值。现在我有一个3元组,(100,150,150),我想比较Book1的每个单元格的数值与第一元组(100)和Book2与第二元组(150)和类似Book3与第三元组(150) )。现在每当这些excel文件的相应单元格与此元组匹配时,我想打印1否则为0.也就是说,Book1中的我(10,200)单元格包含100,而在Book2中单元格(10,200)包含150和in(10,200) Book3的单元格我们有150个,然后我要打印1,否则为0。

所以这是我为此写的程序:

import xlrd

file_loc1 = "D:\Python\Book1.xlsx"
file_loc2 = "D:\Python\Book2.xlsx"
file_loc3 = "D:\Python\Book3.xlsx"

workbook1 = xlrd.open_workbook(file_loc1)
workbook2 = xlrd.open_workbook(file_loc2)
workbook3 = xlrd.open_workbook(file_loc3)

sheet1 = workbook1.sheet_by_index(0)
sheet2 = workbook2.sheet_by_index(0)
sheet3 = workbook3.sheet_by_index(0)

for i in range(1,11000):
   for j in range(0,10000):
      if sheet1.cell_value(i,j) == 100 and sheet2.cell_value(i,j) == 150 and sheet3.cell_value(i,j) == 150:
          print 1
      else:
          print 0

首先,由于我是Python的新手,所以我想确定这个程序是否正确或者存在一些问题?循环范围是我需要的范围。

其次,我在我的系统上运行了这个程序,大约需要10个小时,程序仍在运行。我在64位Windows 8.1系统上使用64位Python 2.7.13。为了执行,我使用的是Windows Powershell。我给出了以下命令来执行python script1.py > output1.txt,因为我还想要一个文本输出。我在我的Python目录中生成了一个名为output1的文本文件,但是自程序开始以来它的大小为0字节。所以,我甚至不确定我是否收到任何正确的文件。我该怎么办?有没有更有效的方法来获得这样的输出?另外,我想等多久该程序/循环完成?

0 个答案:

没有答案