2014-03-29 128 views
1

我將修改後的日期和文件大小保存到單獨的文本文件中。然後打開文本文件,逐行閱讀,並將舊的修改日期和文件大小與新文件大小進行比較。即使它們匹配,但我不能讓我的生活得到python認同他們是一樣的。我做錯了什麼,請問我該怎麼改正?比較python中的變量

def check(movFile): 
    lastModified = "%s" % time.ctime(os.path.getmtime(movFile)) 
    fileSize = "%s" % os.path.getsize(movFile) 
    if os.path.isfile(outFile): 
     checkFile = open(outFile, "r") 
     line = checkFile.readlines() 
     line0 = line[0] 
     line1 = line[1] 
     if lastModified == line0: 
      print "last modified are the same" 
     if fileSize == line1: 
      print "file size is the same) 

這裏是文本文件的例子:

Mon Jul 8 12:32:16 2013 
7165528 

我可以看到,無論新舊都相同印刷外殼,所以不知道爲什麼Python是說他們是不是相同。

+0

請發佈您正在閱讀的文件的示例。 – tjati

回答

2

readlines() reads 整行,包括EOL字符。您需要在比較之前剝離該字符或使用in運營商(或startswith()方法:

if lastModified == line0.strip(): 

應該爲你工作

1

嘗試使用

if lastModified.strip() == line0.strip(): 
     print "last modified are the same" 
    if fileSize.strip() == line1.strip(): 
     print "file size is the same" 

如果不去掉空格不工作,其他原因可能是數據類型。嘗試將所有文​​件轉換爲字符串類型。