Python - 如果目录包含以...开头的文件...移动文件

发布于 2024-11-29 09:06:19 字数 137 浏览 1 评论 0原文

我需要在 Python 中创建一个脚本,该脚本将查找一个目录(仅包含一个文件),如果该文件不是当天的文件,则将其移动。作为参考,该文件有一个与当天相关的后缀(myfile_030811.xls

有人对此有任何想法吗?

I need to create a script in Python which will look to a directory (which contains only one file) and move it if the file is not for the current day. For reference the file has a suffix which relates to the current day (myfile_030811.xls)

Does anyone have any ideas for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜`诱少女 2024-12-06 09:06:19

试试这个?这假设当前目录下存在一个名为“archived”的目录。您可能想调整它以满足您的需求。另外,这还假设您目录下的所有文件都具有结构 _ddmmyy 的名称。格式。否则它不会工作

from stat import *
import os
import time
import shutil
import sys

for file in os.listdir(sys.argv[1]):
  ct = time.localtime()
  datestamp_on_filename = file.split('_')[1].split('.')[0]
  current_date_in_ddmmyy = str(ct.tm_mday) + (('0' + str(ct.tm_mon)) if ct.tm_mon < 10 else str(ct.tm_mon)) + str(ct.tm_year)[2:]
  if datestamp_on_filename != current_date_in_ddmmyy:
    print 'moving ' + file
    shutil.move(sys.argv[1] + "/" + file, 'archived')

try this? This assumes that a directory called 'archived' is present under the current directory. you might want to tweak it to suit your needs. Also this assumes that all files under your directory have a name of the structure _ddmmyy. format. It won't work otherwise

from stat import *
import os
import time
import shutil
import sys

for file in os.listdir(sys.argv[1]):
  ct = time.localtime()
  datestamp_on_filename = file.split('_')[1].split('.')[0]
  current_date_in_ddmmyy = str(ct.tm_mday) + (('0' + str(ct.tm_mon)) if ct.tm_mon < 10 else str(ct.tm_mon)) + str(ct.tm_year)[2:]
  if datestamp_on_filename != current_date_in_ddmmyy:
    print 'moving ' + file
    shutil.move(sys.argv[1] + "/" + file, 'archived')
一指流沙 2024-12-06 09:06:19

巴什怎么样?

测试一下:

for m in `find /some/base/dir -mtime 1`;do echo mv $m /new/directory;done

如果一切看起来都不错,请删除 mv 前面的“echo”命令。

How about bash?

Test it with :

for m in `find /some/base/dir -mtime 1`;do echo mv $m /new/directory;done

If everything looks good, remove the "echo" command in front of mv.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文