python - 复制创建日期在特定范围内的文件
问题描述
'''我目前正在尝试使用shutil将文件从一个文件夹复制到另一个文件夹,但我似乎无法让它工作,进程说它已经完成但没有任何反应?'''
我添加的当前标准 raw_input 允许用户选择文件扩展名。我要添加的下一个标准是日期范围函数,因此我可以选择一个日期范围,例如:17/07/2020 到 04/08/2020 或当天的日期。
*更新代码
import os
import shutil
import os.path, time
from pip._vendor.distlib.compat import raw_input
os.chdir('C://')
src = ("C:/Users/eldri/OneDrive/Desktop/")
dst = ("C:/Users/eldri/OneDrive/Desktop/output")
ext = raw_input("[+] File format: ")
created = (" last modified: %s" % time.ctime(os.path.getmtime(src)))
start = raw_input("[+] Date start: ")
end = raw_input("[+] Date end: ")
def date_to_num(date):
return int("".join(date.split('/')[::-1]))
def date_in_range(date, start, end):
return date_to_num(date) > date_to_num(start) and date_to_num(date) < date_to_num(end)
for filename in os.listdir(src):
if filename.endswith('.'+ext) and created.startswith(start) and created.endswith(end):
shutil.copy( src + filename, dst)
print("[+] File transferred "+filename + created)
else:
print("[+] File not transferred "+filename + created)
print("[+] Transfer complete")
我在看也许是熊猫?但不确定对python还是很陌生。
example on terminal
file extension = .csv
startdate = 12/05/2020
enddate = 07/08/2020
一旦用户输入了这些字段,它将只复制所需的文件。
创建文件的当前输出为:
[+] File transferred BASE1011.xls last modified: Fri Jul 17 10:11:40 2020
[+] File transferred BASE1112.xls last modified: Fri Jul 17 10:11:40 2020
[+] File transferred BASE1213.xls last modified: Fri Jul 17 10:11:40 2020
[+] File transferred BASE1314.xls last modified: Fri Jul 17 10:11:40 2020
[+] File transferred BASE1415.xls last modified: Fri Jul 17 10:11:40 2020
如上所述,我希望这些格式更易于用户输入:示例:开始 12/05/2020 结束日期 = 07/08/2020
谢谢你的帮助,我不是最擅长 python,但我正在努力学习,所以任何帮助都会很棒。
谢谢
解决方案
对于特定范围,您可以:
创建一个将日期解析为数字的函数:
def date_to_num(date):
return int("".join(date.split('/')[::-1]))
def date_in_range(date, start, end):
return date_to_num(date) > date_to_num(start) and date_to_num(date) < date_to_num(end)
然后像这样使用它:
date_in_range("03/02/2020", "01/01/2020", "05/05/2020")
推荐阅读
- java - 从 Bouncy Castle 中的文本创建 RSA 公钥的问题
- qt - QImage::rgbSwapped() 函数工作很慢
- jquery - 未捕获的引用错误:$ajax 未在 HtlmInputElement 中定义。
- mysql - 如何避免由于滞后 b/w 主/从而导致重复?
- angular - *ngIf div 显示隐藏订阅 Firestore
- android-emulator - Android 模拟器未在 AMD Ryzen 处理器上运行(需要硬件加速)
- r - 使用条件语句更改表中值的颜色 (kableextra)
- c - 在 Tizen Native Wearable App (Samsung G3) 的模板中,我可以开始将代码放入哪一行
- javascript - 如何使用更新的 UI 格式化 Shiny 中的 numericInput?
- java - “fxmlLoadException:已指定根值”但我从未设置根值