Python 使用move.py在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的新手。我的映像位于外部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
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,谢谢你的格式化提示,现在它更有意义了!好的,你说了,但它没有起作用。你能告诉我发生了什么事吗?你收到错误/回溯了吗?有日志输出吗?