gpt4 book ai didi

python - 使用python在linux中的日期范围内获取目录中修改的文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:18 25 4
gpt4 key购买 nike

我正在尝试编写代码来获取目录中在特定日期范围内创建/修改的文件。

我对 linux 了解不多,我想知道我可以使用什么命令来获取目录中与我指定的日期范围内匹配的文件列表。

另外,对于这种类型的查询,正确的格式是什么,因为这个过程将是自动化的,用户只需要输入他的开始和结束日期。

到目前为止的相关代码:

#! /usr/bin/env python

import os
import copy
import subprocess
import optparse

def command(command):
env = copy.deepcopy(os.environ)
proc = subprocess.Popen([command],
shell=True, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
result = proc.stdout.read()

if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option("-s", "--startdate", dest = "startdate",\
help = "the starting date of the files to search")
parser.add_option("-e", "--enddate", dest = "enddate",\
help = "the ending date of the files to search")
(options, args) = parser.parse_args()

# commands
file_names = command("get files that match dates command")

我必须在该命令中输入什么才能获取这些文件名?

编辑:

相反 - 它不一定是命令,如果它可以使用纯代码完成,例如 os.walk,那也很好。我知道某些功能在 Linux 和 Windows 中无法正常工作,因此需要就此事提供帮助。

编辑 2:

无论使用哪种方法,用户都应输入两个日期:开始和结束。然后获取在这些日期之间修改/创建的所有文件。

最佳答案

一个选择是在 os.walk 行中使用一些东西,并根据 ctime/mtime 过滤掉文件,你可以这样得到:

import os.path, time
print "last modified: %s" % time.ctime(os.path.getmtime(file))
print "created: %s" % time.ctime(os.path.getctime(file))

如果你更喜欢用 shell 来做,那么 find 是你的 friend ,带有以下标志:

-ctime n File's status was last changed n*24 hours ago.

-mtime n File's data was last modified n*24 hours ago.

[编辑]

获取给定目录(“.”)中文件修改时间的小代码示例:

import os
from os.path import join
import datetime


def modification_date(filename):
t = os.path.getmtime(filename)
return t

def creation_date(filename):
t = os.path.getctime(filename)
return t

for root, dirs, files in os.walk("."):
for name in files:
print join(root, name), modification_date(join(root, name)), creation_date(join(root, name))

根据您的特定命令行参数实现,您希望将命令行上传递的内容转换为 unix 时间戳并与任一日期进行比较。

关于python - 使用python在linux中的日期范围内获取目录中修改的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com