Tôi đang tạo một tập lệnh python sẽ truy cập từng dòng từ một tệp Văn bản (nói File.txt) từng cái một rồi tìm kiếm tệp '.py' và '.txt' tương ứng trong thư mục hệ thống. Ví dụ: nếu "COPY" (dòng đầu tiên) được truy cập từ "File.txt" thì tìm kiếm sẽ được thực hiện cho "COPY.py" và "COPY.txt". Nếu cả hai tập tin được tìm thấy thì ngày sửa đổi của chúng sẽ được so sánh. Mã không có lỗi cú pháp Nhưng tôi nhận được kết quả sai.Cách so sánh ngày sửa đổi của hai tệp trong python?
My Python code is:
for line in fileinput.input(r'D:\Python_Programs\File.txt'):
line = line[0:-1]
sc = ''.join((line,'.py'))
lo = ''.join((line,'.txt'))
for root, dirs, files in os.walk(r'D:\txt and py'):
if sc in files:
pytime = time.ctime(os.path.getmtime(os.path.join(root, sc)))
print(sc, ' :', pytime)
for root, dirs, files in os.walk(root):
if txt in files:
txttime = time.ctime(os.path.getmtime(os.path.join(root, txt)))
print(txt, ' :', txttime)
if (txttime > pytime):
print('PASS', '\n')
else:
print('FAIL', '\n')
Output:
COPY.py : Mon Aug 27 10:50:06 2012
COPY.txt : Mon Feb 04 11:05:31 2013
PASS #Expected = PASS
COPY2.py : Fri Feb 08 16:34:43 2013
COPY2.txt : Sat Sep 22 14:19:32 2012
PASS #Expected = FAIL
COPY3.py : Fri Feb 08 16:34:53 2013
COPY3.txt : Mon Sep 24 00:50:07 2012
PASS #Expected = FAIL
tôi không nhận được lý do tại sao "COPY2" và "COPY3" đang đưa ra "PASS". Có thể tôi đang làm điều đó một cách sai lầm. Cũng như thay đổi so sánh thành "nếu (txttime < pytime)" trong mã. Tất cả các kết quả được hiển thị dưới dạng "FAIL" ở đầu ra.
Thay vì sử dụng dây thô cho các cửa sổ con đường, thay vì chỉ sử dụng dấu gạch chéo - nó sẽ làm việc tốt (và cũng sẽ làm việc trên các nền tảng khác). –
bạn có thể sử dụng ['os.stat (tên tệp) .st_mtime'] (http://docs.python.org/2/library/stat.html#stat.ST_MTIME) tại đây, nó trả về thời gian sửa đổi cuối cùng. –