새 파일을 수정하고 화면에 출력 할 때까지 계속 실행되는 동안 코드가 마지막으로 수정 된 파일을 받아서 인쇄해야합니다. 그러나 typeError를 가져 오는 kepp이 있습니다. TypeError : 유니 코드로 강제 변환 : string 또는 버퍼가 필요합니다. int가 있습니다.디렉토리의 쓰루 파일을 반복합니다.
import os, sys, re, time
from datetime import date, timedelta, datetime
from time import localtime
files = os.listdir('dir_path')
files = [f for f in files if re.search('.csv', f, re.I)]
files.sort
d = datetime.now() - timedelta(days = 30)
d = d.timetuple()
oldfiles = 0
newfiles = 0
for file in files:
filetimesecs = os.path.getmtime('dir_path' + file)
filetime = localtime(filetimesecs)
if filetime < d:
oldfiles += 1
if filetime > d:
newfiles += open(files, 'r')
for k in newfiles:
sys.stderr.write(k)
while True:
time.sleep(2)
print"new: %s" % newfiles
들여 쓰기가 잘못되었을 수 있습니다. 그것을 제발 바꿔 주시겠습니까? –
아니요 newfiles를 + = open (files, 'r') sys.stderr.write (k)에 넣고 newfiles를 +1하십시오 : newfiles를 입력하십시오. – mintgreen
@SvenMarnach 'if' 블록들의 들여 쓰기를 언급하고 있습니다. 마치'for' 루프에있는 것처럼 보입니다. 또한, 당신이 가지고있는 논리는 당신의 설명이 말하는 것을 확실히하지 않을 것입니다. 모든 파일을 한 번 반복 한 다음 중지합니다. 그리고 우리를 더 쉽게 만들기 위해, 오류는 무엇에 던져지고 있습니까? 마지막으로,'dir_path'가 문자열 리터럴이 아니라 매개 변수라는 것을 의미한다고 생각합니다. –