프로그래밍에 익숙하지 않고 Python을 사용하여 지난 24 시간 내에 생성되거나 수정 된 하나의 폴더에서 파일을 검색하는 스크립트 작성과 관련된 작업을 수행하고 있습니다. 해당 파일을 다른 디렉토리로 이동하십시오.Python의 시간 범위 특정 파일 이동
필자는 파일 생성 및 수정 날짜를 인쇄하는 코드를 작성했습니다.이 코드는 내에 24 시간 전에 수정 된 이전 파일을 정렬하는 함수입니다. 하지만 실제로 특정 파일을 가져 와서 새 폴더로 전송하는 스크립트를 만드는 데 어려움을 겪고 있습니다. 이것은 내 코드의 첫 번째 부분입니다 :
import os,time
import datetime
import shutil
now = dt.datetime.now()
ago = now-dt.timedelta(hours=24)
strftime = "%H:%M %m/%d/%Y"
created = 'C:\\Users\\Jacquelin\e\Desktop\\created'
dest = 'C:\\Users\\Jacqueline\\Desktop\\dest'
for root, dirs,files in os.walk(created):
for fname in files:
path = os.path.join(root, fname)
st = os.stat(path)
mtime = dt.datetime.fromtimestamp(st.st_mtime)
if mtime > ago:
print "True: ", fname, " at ", mtime.strftime("%H:%M %m/%d/%Y")
else:
print False
for fname in os.listdir(created):
if mtime > ago:
shutil.move(path, dest)
print "moved to dest", fname
나는 파일을 전송하는 shutil.move를 사용하고, 그리고 시도 만 things-- 그러나 그것을 알아낼 수 없습니다! 또한 이것들을 기능을 단순화하기위한 것으로 바꾸는 작업을하고 있습니다. 지금까지이 내가 가진 무엇이 올바른 생각하지만, 전달하는 변수를 모르고 같은 느낌은 "이동"기능에 대한
def find_info(): #this first func. works fine.
for root, dirs, files in os.walk(created):
for fname in files:
path = os.path.join(root, fname)
st = os.stat(path)
mtime = dt.datetime.fromtimestamp(st.st_mtime)
if mtime > ago:
print True
else:
print False
, 나는 빈 괄호를 떠 났어요. 그리고 그 반환 부랑자의 미친 긴 목록. 그래서.
기능에 전달할 변수가 확실하지 않습니다. 그 후에 파일을 실제로 전송했는지 확인하기 위해 디렉토리를 인쇄합니다. 저주받은 물건들은 움직이지 않을 것입니다.
감사합니다.
'shutil.move'를 어떻게 사용하고 있으며 무엇이 잘못되었는지 설명해 주시겠습니까? 오류 메시지 등? 또한 백 슬래시가 특별한 의미를 가지기 때문에 백 슬래시가있는 경로가 잘못 해석 될 수 있으므로''c : \\ Users \\ ... ''또는''os ''를 사용하여 이스케이프해야합니다. .path.join'. –
방금 코드를 변경했으며 원본 메시지와 함께 위 코드를 작성합니다. shutil.move를 사용하면 파일을 이동하지 않는 것입니다! 프로그램에서 원본 및 대상 디렉토리를 인쇄하도록하고 있지만 전송이 이루어지지 않았습니다. – nikkiy