Python 使用move.py在CSV列表中移动文件
我是python的新手。我的映像位于外部RAID驱动器中。我想使用包含所需图像的.csv文件仅从外部RAID移动这些图像 我的桌面上有move.py和hasselblad.csv 这是我已经给出的命令示例,但它不起作用,即使在填写了源/目标之后:Python 使用move.py在CSV列表中移动文件,python,django,csv,Python,Django,Csv,我是python的新手。我的映像位于外部RAID驱动器中。我想使用包含所需图像的.csv文件仅从外部RAID移动这些图像 我的桌面上有move.py和hasselblad.csv 这是我已经给出的命令示例,但它不起作用,即使在填写了源/目标之后: python move.py —csvfile /path/to/hasselblad.csv —src /path/to/source/images —dest /path/to/where/images/should/be/copied Pyth
python move.py —csvfile /path/to/hasselblad.csv —src /path/to/source/images —dest /path/to/where/images/should/be/copied
Python文件详细信息:
#!/usr/bin/env python
import os
import csv
import sys
import logging
def find(src, fname):
for root, dirs, files in os.walk(src):
for f in files:
logging.debug("compare %s to %s" % (f, fname))
if f == fname:
path = os.path.join(root, f)
logging.info("%s matches %s" % (path, fname))
return path
return None
def scan(src):
lookup = {}
for root, dirs, files in os.walk(src):
for f in files:
path = os.path.join(root, f)
path = os.path.abspath(path)
lookup[f] = path
return lookup
if __name__ == '__main__':
import optparse
parser = optparse.OptionParser()
parser.add_option('--csvfile', dest='csvfile',
help='',
action='store')
parser.add_option('--src', dest='src',
help='',
action='store', default=None)
parser.add_option('--dest', dest='dest',
help='',
action='store', default=None)
parser.add_option("--verbose", dest="verbose",
help="",
action="store_true", default=False)
parser.add_option("--debug", dest="debug",
help="",
action="store_true", default=False)
opts, args = parser.parse_args()
if opts.verbose:
logging.basicConfig(level=logging.DEBUG)
else:
logging.basicConfig(level=logging.INFO)
if not os.path.exists(opts.csvfile):
logging.error("CSV file (%s) does not exist!" % opts.csvfile)
sys.exit()
if not os.path.isdir(opts.src):
logging.error("Source directory (%s) does not exist!" % opts.src)
sys.exit()
if not os.path.isdir(opts.dest):
logging.error("Destination directory (%s) does not exist!" % opts.dest)
sys.exit()
src = os.path.abspath(opts.src)
dest = os.path.abspath(opts.dest)
# lookup = scan(src)
fh = open(opts.csvfile, 'r')
reader = csv.reader(fh)
for row in reader:
fname = row[0]
# src_path = lookup.get(fname, None)
src_path = find(src, fname)
if not src_path:
logging.warn("Failed to locate %s anywhere in %s" % (fname, src))
continue
if opts.debug:
logging.info("Debugging is enabled so not copy-ing %s" % path)
contine
dest_path = os.path.join(dest, fname)
logging.info("copy %s to %s" % (src_path, dest_path))
hasselblad.csv文件详细信息示例:
1982-12-7.jpg
1983-14-2.jpg
1984-11-5.jpg
你能发布move.py的内容吗?还有一个例子,CSV中的几行/usr/bin/env python import os import csv import sys import logging def findsrc,fname:for root,dirs,os.walksrc:for f in files:logging.debugcompare%s to%s%f,fname如果f==fname:path=os.path.joinroot,f logging.info%s匹配%s%path,fname return path return None def scansrc:lookup={}这是move.py和.csv的一个示例:1963-39-783.jpg 1963-39-991.jpg 1948-40-66.jpg 1953-26-1.jpg您能将注释代码移回问题中以使其格式正确吗?每行前4个空格嗨,Joel,谢谢你的格式化提示,现在它更有意义了!好的,你说了,但它没有起作用。你能告诉我发生了什么事吗?你收到错误/回溯了吗?有日志输出吗?