1

问题 ; 从目录结构中查找在特定日期之后更改的文件/文件夹并将它们复制到另一个位置(如标题中明确说明的那样)(:

通过以下;

def mod():
     """Find files modified today, given a file path."""
     latest = 0
     now = time.strftime('%Y-%m-%d', time.localtime())
     dir = "/home/y33t/"
     for fname in os.listdir(dir):
         if fname.endswith(''):
             modtime = os.stat(os.path.join(dir, fname)).st_mtime
             if modtime > latest:
                 latest = modtime
                 out = time.strftime('%Y-%m-%d', time.localtime(latest))
                 if out == now:
                     print fname, "has changed today. "
                 else:
                     pass

我可以确定在特定日期更改了哪些文件并将这些文件复制到某个位置。我想要实现的是保持目录结构。一个例子如下;

/testfolder
..somefile1
..somefile2
../testfolder2
....somefile3
....somefile4

等等...

假设 somefile3 在指定日期更改,我会将其保存到另一个位置,但在保存时,级联目录结构也应保持。我怎样才能以优雅的方式实现这一目标?

4

1 回答 1

1

在复制之前,你应该解决阅读。os.listdir只会给你一个级别,而os.walk会让你深入每个文件。

要复制,您将首先使用os.makedirs(target-path)以任何深度创建从根目录到目标文件夹的所有文件夹,然后您将用于shutil.copy复制文件。

于 2012-06-29T09:35:57.873 回答