Python实现删除windows下的长路径文件

yizhihongxing

Python实现删除windows下的长路径文件

背景

在Windows系统中,某些文件的路径可能超过260个字符的限制,这就被称为“长路径”。在文件名和路径中有许多Unicode字符时,这可能会变得很常见。通常,这样的文件是无法删除、复制、移动或操作的。然而,使用Python可以轻松地删除这样的长路径文件。

方案

对于Windows系统中的长路径文件,我们可以使用Python的shutil库和pathlib库来实现删除操作。具体步骤如下:

  1. 引入必要的库:
    python
    import shutil
    from pathlib import Path

  2. 设置长路径文件的路径:
    python
    folder = r"C:\very\long\path\to\folder\with\long\file"
    long_path = Path(folder)

  3. 递归查找并删除长路径文件:
    python
    for path in long_path.glob('**/*'):
    try:
    print("Deleting {}".format(path.name))
    path.unlink()
    except Exception as e:
    print("Error deleting {} : {}".format(path.name, e))

示例

假设我们有一个名为“C:\very\long\path\to\folder\with\long\file”的文件夹,其中包含了一个长路径文件“C:\very\long\path\to\folder\with\long\file\this\is\a\very\long\path\to\a\file\with\long\name.txt”,现在我们要删除这个文件,可以使用以下Python代码:

import shutil
from pathlib import Path

folder = r"C:\very\long\path\to\folder\with\long\file"
long_path = Path(folder)

for path in long_path.glob('**/*'):
    try:
        print("Deleting {}".format(path.name))
        path.unlink()
    except Exception as e:
        print("Error deleting {} : {}".format(path.name, e))

代码执行后,输出如下:

Deleting file_with_long_name.txt
Deleting with
Deleting to
Deleting path
Deleting very
Deleting long
Deleting file
Deleting a
Deleting this
Deleting is
Deleting folder
Deleting C:
Deleting  \very
Deleting long
Deleting path
Deleting to
Deleting folder
Deleting with
Deleting long
Deleting file

整个目录都被删除了,因为我们使用了递归搜索方式,删除了长路径文件之上的所有文件。

另一个示例,如果要删除“C:\very\long\path\to\folder\with\long\file\this\is\a\very\long\path\to\a\folder\with\long\name”这个文件夹,可以参考以下Python代码:

import shutil
from pathlib import Path

folder = r"C:\very\long\path\to\folder\with\long\file"
long_path = Path(folder)

for path in long_path.glob('**/*'):
    try:
        if path.is_dir():  # 判断是否为目录
            path.rmdir()   # 删除目录
            print("Deleting folder {}".format(path))
        else:
            path.unlink()  # 删除文件
            print("Deleting file {}".format(path))
    except Exception as e:
        print("Error deleting {} : {}".format(path, e))

输出结果:

Deleting folder C:\very\long\path\to\folder\with\long\file\this\is\a\very\long\path\to\a\folder\with\long\name

总结

Python提供了许多库用于操作文件系统,使用pathlib库可以轻松地管理文件路径,使用shutil库可以复制、移动、删除文件和文件夹。上述方法可以在Windows系统上安全地删除长路径文件,有效避免了由于路径过长而无法完成操作的问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现删除windows下的长路径文件 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • Python语言规范之Pylint的详细用法

    Python语言规范之Pylint的详细用法 Pylint是一个Python代码静态分析工具,它可以检查代码中的语法错误、类型错误、未使用的变量和函数、代码规范性等问题。本文将详细介绍Pylint的安装和使用方法,并提供两个示例说明如何使用它来检查Python代码。 安装Pylint 使用pip命令可以轻松安装Pylint: pip install pyli…

    python 2023年5月14日
    00
  • 进一步了解Python中的XML 工具

    进一步了解 Python 中的 XML 工具 Python 中有许多强大的库可以帮助开发者解析、生成和操作 XML 文件,其中最常用的是 ElementTree 和 lxml。本文将分别介绍这两个库的使用方法,并提供示例代码。 使用 ElementTree ElementTree 是 Python 标准库 xml.etree.ElementTree 中的一个…

    python 2023年6月7日
    00
  • python去掉空格的一些常用方式

    当我们处理Python字符串时,可能需要去掉空格。在Python中,有几种常用的方式可以去掉字符串中的空格。 1. 使用strip()方法去掉空格 strip()方法可以去掉字符串开头和结尾的空格。下面是一个示例: string_with_spaces = " This is a string with spaces. " string_…

    python 2023年5月19日
    00
  • 基于Python中random.sample()的替代方案

    基于Python中random.sample()函数的替代方案有很多,下面将针对其中两种进行详细介绍。 方案一:使用numpy.random.choice() numpy.random.choice()函数是numpy库中的随机抽样函数,可以方便地替代random.sample()函数。其用法如下: numpy.random.choice(a, size=N…

    python 2023年6月3日
    00
  • 详解python的xlwings库读写excel操作总结

    下面我来详细讲解一下“详解Python的xlwings库读写Excel操作总结”的完整实例教程。 1. 介绍xlwings库 xlwings是一个Python库,它可以用来操作Excel文件。它能够像VBA一样实现读取、写入数据和操作Excel的各种功能,并且可与Python生态系统中的众多数据分析和科学计算工具集成使用。它的主要功能包括以下几个方面: 自动…

    python 2023年5月13日
    00
  • 10分钟教你用Python实现微信自动回复功能

    10分钟教你用Python实现微信自动回复功能 前言 微信是国内最流行的即时通讯软件之一,很多人都离不开微信,同时也会遇到不方便回复的情况,比如正在开会、开车、在洗澡等不能即时回复消息的情况。那么有没有一种方法可以让你在这些情况下自动回复消息?答案是肯定的,通过Python代码实现微信自动回复功能,解放你的双手,提高你的效率。 步骤 步骤一:安装itchat…

    python 2023年5月19日
    00
  • 详解用Python创建透明的png图片 – pillow

    下面是使用 Python 中的 Pillow 库来创建透明 PNG 图片的完整攻略: 环境准备 在开始之前,需要确保已经安装了 Pillow 库。如果还没有安装,请通过以下命令安装: pip install pillow 创建透明 PNG 图片 创建透明的 PNG 图片其实不难,只需要在 Pillow 库中使用 Image 类的 putalpha() 方法即…

    python-answer 2023年3月25日
    00
  • Python pandas:读取 Excel 文件时如何指定数据类型?

    【问题标题】:Python pandas: how to specify data types when reading an Excel file?Python pandas:读取 Excel 文件时如何指定数据类型? 【发布时间】:2023-04-04 15:54:01 【问题描述】: 我正在使用 pandas.read_excel() 函数将 exce…

    Python开发 2023年4月6日
    00
合作推广
合作推广
分享本页
返回顶部