【问题标题】:Python shutil move I/O errorPython shutil 移动 I/O 错误
【发布时间】:2013-12-12 21:15:46
【问题描述】:

我正在尝试查找一些文件,创建一个文件夹并将文件移动到那里。

def test():
    try:
        logfile = "C:\\Users\\alkis\\Desktop\\testouter\\test"
        result_dir = os.path.join(logfile, "testzip")
        print result_dir
        os.makedirs(result_dir)
        os.chmod(result_dir, stat.S_IWRITE)
        kpath = logfile + "\\*.jpg"
        print kpath
        files = glob.glob(kpath)
        for file in files:
           filename = os.path.splitext(file)[0]
           print filename
           os.chmod(filename, stat.S_IWRITE)
           shutil.move(filename, result_dir)
    except Exception, e:
        #shutil.rmtree(result_dir)
        print e.__doc__ + "\r\n"
        print e.message
    return

我得到的错误是:MS-Windows OS call failed 我检查了我的文件的权限,它们不是只读的。

【问题讨论】:

    标签: python shutil


    【解决方案1】:

    您正在列出每个文件,删除扩展名,然后尝试移动该文件名。

    扩展名是文件名的一部分,不要删除它。 Windows Exlorer 隐藏仅在显示文件时扩展。

    你也不需要在文件名上调用os.chmod();跳过这一步:

    for file in files:
        filename = os.path.splitext(file)[0]
        print filename
        shutil.move(filename, result_dir)
    

    【讨论】:

    • 非常感谢!我打印了文件名,但我没有注意到这一点。如果我调用 os.path.splitext(file)[0] 我得到它没有扩展名。是否可以在没有 concat 的情况下获得相同的结果加上扩展名?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2014-10-26
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多