Python - 删除长名称

时间:2017-02-19 07:26:20

标签: python windows python-2.7 path

我正在编写一个脚本来递归删除给定文件夹中的文件,因为有时会发生什么,因为路径名长(比Windows支持的长),Windows会抛出“Source Path Too Long”错误。
要解决此问题,我必须找出导致问题的路径,并在删除之前重命名路径中的文件夹。例如 - 这些文件如果不重命名则不会删除 -

  

E:\项目[项目] \ node_modules \巴别预置级-2 \ node_modules \巴别预置级-3 \ node_modules \巴贝尔-插件 - 转换 - 异步到发电机\ node_modules \巴贝尔辅助-remap-异步到发电机\ node_modules \巴贝尔-横移\ node_modules \ lodash_realNames.js

这只是节点在依赖项中安装依赖项的一个示例 我的脚本是删除这些情况,但不幸的是,python抛出错误 -

  

意外错误:(< type'exception.WindowsError'&gt ;,WindowsError(3,   '系统找不到指定的路径'),<回溯对象   0x0000000002714F88&GT)

我猜它会截断太长的路径并尝试删除它们。这是我的脚本 -

import os
import sys


def delete_dir(dir_name):
    for item in os.listdir(dir_name):
        try:
            inner_path = os.path.join(dir_name, item)
            if os.path.isdir(inner_path):
                delete_dir(inner_path)
            else:
                os.remove(inner_path)
        except:
            print "Unexpected error: ", sys.exc_info()

    os.rmdir(dir_name)

if len(sys.argv) <= 1:
    print "Usage python script.py [path]"

for path in sys.argv[1:]:
    abs_path = os.path.abspath(path)
    delete_dir(abs_path)

如何通过python处理删除这些情况?

0 个答案:

没有答案