我把它翻了出来,交叉发布,从那个问题中删除,然后在这里重新发布,一切都是为了你。:-) 这需要“path.py”模块——pip install path.py
或者easy_install path.py
,然后它应该运行。..应该运行,因为它使用与操作系统无关的方法——但我没有在 Windows 上尝试过。Pip(及其要求,分发)可以从这里下载和安装。
#! /usr/bin/python
# -*- coding: utf8 -*-
import os, sys
from path import path
def main(args):
folder, keyword = path(args[0]), args[1]
if not folder.exists() and folder.isdir():
print str(folder) + " is not a valid folder path."
exit(1)
targets = []
for fpath in folder.files():
if keyword.lower() in fpath.basename().lower():
targets.append(fpath)
if targets:
new_dir = folder / keyword
new_dir.makedirs_p()
if new_dir.exists() and new_dir.isdir():
for fpath in targets:
dest = new_dir / fpath.basename()
print "moving {} to {}".format(str(fpath), dest)
fpath.move(new_dir)
else:
msg = "No files in {} match the keyword {}."
print msg.format(repr(str(folder)), repr(keyword))
if __name__ == "__main__":
args = sys.argv[1:]
help = ('-h', '--help', '/h', '/help', '/?')
if len(args) != 2 or args[0] in help or args[1] in help:
print "Moves files in <path> whose name matches <keyword> into a"
print "subdirectory of <path> named <keyword>"
print "Usage:"
print "{} <path> <keyword>".format(sys.argv[0])
exit(0)
try:
main(args)
except OSError, err:
print "Failed: " + err.strerror
..这非常快速和肮脏,没有太多帮助,不使用 argparse 或类似的东西,并且没有特殊选项。
- 它只处理文件
- 它不递归
- 它有相当基本的错误报告。
- 请注意,标签以不区分大小写的方式匹配文件。
..另一方面,
..如果你在我第一次发布它时抓住了它,你可能想再次这样做,因为我已经更新了一点(更好的错误报告和处理)