我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python保存文件名太长怎么解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python保存文件名太长怎么解决

这篇文章主要讲解了“Python保存文件名太长怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python保存文件名太长怎么解决”吧!

保存文件名太长OSError: [Errno 36] File name too lon

问题描述

安装

pip install python-docx

代码

from docx import DocumentDocument().save('{}.docx'.format('1' * 256))

报错 OSError: [Errno 36] File name too long

解决方案

Linux 和 Windows 文件名限制约为 255 个字符

def shorten_filename(filename, limit=100):    """返回合适长度文件名,中间用...显示"""    if len(filename) <= limit:        return filename    else:        return filename[:int(limit / 2) - 3] + '...' + filename[len(filename) - int(limit / 2):]filename = '{}.txt'.format('Lorem ipsum dolor sit amet, consectetur adipiscing elit' * 30)print(filename)print(shorten_filename(filename))# Lorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elit.txt# Lorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum do...ipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elitLorem ipsum dolor sit amet, consectetur adipiscing elit.txt

Python超长文件名解决

今天用python,写一个批量移动文件的代码!

Python保存文件名太长怎么解决

Python保存文件名太长怎么解决

Python保存文件名太长怎么解决

大家看到了,将近900个项目,好几层的目录,一个项目一下面有50几张的照片,要把这些照片集中移动到第一层的目录下面。

最初我的代码是这样写的:

import osfrom shutil import movepath_list = os.listdir('./qi')for path in path_list:    path_list1 = os.listdir('./qi/'+path)    for path2 in path_list1:        path_list2 = os.listdir('./qi/'+path+'/'+path2)        for img in path_list2:            png_list = os.listdir('./qi/'+path+'/'+path2+'/'+img)            for png in png_list:                oldfile = os.path.join('./qi'+'/'+path+'/'+path2+'/'+img+'/',png)                newfile = os.path.join('./qi'+'/'+path+'/',png)                move(oldfile,newfile)

目录有好几个层级,前面的 for 循环就不细述,感觉代码都没错。

运行后总是报错,FileNotFoundError: [WinError 3] 系统找不到指定的路径。

后面发现是文件名超过255位造成的。

最后的解决方法是将相对路径改为绝对路径,并在路径前方加上“\\?\”。

找了前辈的文章,摘要如下:

  • 这个解决方法是想办法告诉电脑我的路径长度很长。首先我查询了windows下文件路径的最大长度是多少,查到的结果是260.这对于绝大多数情况都足够用了,但是文件路径长的问题还是存在的。

  • 然后就看到了UNC的定义,原来windows下的文件路径的长度最大可以是3万多的长度,具体多少记不清了哈哈哈。

  • 只要在绝对路径的前面加上“\\?\”就能告诉计算机我需要使用最大的路径长度,这样就不会出现路径太长而导致的无法操作的问题了。

怎么加“\\?\”这里没有说太清楚了

试了好几次,发现要加好多个\总算得到结果,代码如下供参考:

import osfrom shutil import movepath_list = os.listdir('./qi')#几次循环,获得藏在最底层目录的文件名for path in path_list:    path_list1 = os.listdir('./qi/'+path)    for path2 in path_list1:        path_list2 = os.listdir('./qi/'+path+'/'+path2)        for img in path_list2:            png_list = os.listdir('./qi/'+path+'/'+path2+'/'+img)            for png in png_list:                #获得绝对路径                old_path = os.path.abspath('./qi'+'/'+path+'/'+path2+'/'+img+'/')                new_path = os.path.abspath('./qi'+'/'+path+'/')                #在绝对路径前加料,就可以识别了                oldfile = os.path.join('\\\?\\'+old_path,png)                newfile = os.path.join('\\\?\\'+new_path,png)                move(oldfile,newfile)

感谢各位的阅读,以上就是“Python保存文件名太长怎么解决”的内容了,经过本文的学习后,相信大家对Python保存文件名太长怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python保存文件名太长怎么解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python保存文件名太长怎么解决

这篇文章主要讲解了“Python保存文件名太长怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python保存文件名太长怎么解决”吧!保存文件名太长OSError: [Errno 36
2023-06-30

Win10提示文件名对目标文件夹可能太长的解决方法

小编给大家分享一下Win10提示文件名对目标文件夹可能太长的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!大家都知道,有时候win10系统弹出“文件名对目
2023-06-10

linux vi保存文件报错怎么解决

在Linux系统中使用vi编辑器保存文件时,可能会遇到以下错误:“E45: ‘readonly’ option is set (add ! to override)” - 这个错误表示文件是只读的,您可以在保存文件时添加"!“来强制保存文件
linux vi保存文件报错怎么解决
2024-04-08

python怎么保存list到文件

要将列表保存到文件中,可以使用以下方法:使用`pickle`模块将列表保存为二进制文件:import picklemy_list = [1, 2, 3, 4, 5]with open('list_file.pkl', 'wb') as
2023-10-24

plsql文本导入字符串太长怎么解决

如果PL/SQL文本导入字符串过长,可以考虑以下几种解决方法:分解字符串:将较长的字符串拆分为多个较短的字符串,并分别导入。例如,将一个5000字符的字符串拆分为5个1000字符的字符串进行导入。使用CLOB类型:如果字符串太长,可以将其存
plsql文本导入字符串太长怎么解决
2024-02-29

Oracle无法创建保存文件怎么解决

如果Oracle无法创建或保存文件,可能是由于以下几种原因:没有足够的权限:确保Oracle用户有权限创建和保存文件。可以通过检查文件夹的权限设置或联系系统管理员来确认。文件路径错误:确保指定的文件路径是正确的。检查文件路径中是否包含了非法
Oracle无法创建保存文件怎么解决
2024-04-09

windows 文件名太长怎么办?Windows关闭/开启短文件名功能的教程

DOS系统下的命令方式为8.3格式,即文件名不超过8个字符,扩展名不超过3个字符。形编程如:???.exe 。现在Windows系统文件名长度最长可达255个字符了。 下面介绍Windows 关闭、开启短文件名功能1、按下快捷键Win+R打
2023-06-13

webpack打包文件太大怎么解决

这篇文章主要讲解了“webpack打包文件太大怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“webpack打包文件太大怎么解决”吧!webpack 把我们所有的文件都打包成一个 JS
2023-06-04

windows系统下文件名太长无法删除该怎么办?

首先,此问题wAneOvC导致的原因肯能有很多种,并且读者操作的方式有可能编程客栈不对,所以,本文不保证一定能够解决Windows下文件名太长无法删除的问题。本经验只是根据个人经验总结,并不是指问题的标准解决方案。在windows下,有时候
2023-06-11

Win10修改hosts文件无法保存怎么解决

这篇文章主要讲解了“Win10修改hosts文件无法保存怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Win10修改hosts文件无法保存怎么解决”吧!Win10修改hosts文件无
2023-07-01

python怎么将数组保存至文件

可以使用Python的pickle模块将数组保存到文件中。假设我们有一个名为my_array的数组,我们可以使用以下代码将其保存到文件中:import picklemy_array = [1, 2, 3, 4, 5]with open(
2023-10-24

python怎么保存py文件到桌面

将 python 文件保存到桌面的步骤:导入 os 模块,用于与操作系统交互。获取桌面的绝对路径,即用户的 home 目录加上 "desktop" 子目录。打开要保存的文件,并指定 "w" 模式,表示要写入该文件。使用 f.write()
python怎么保存py文件到桌面
2024-05-05

ubuntu中gedit保存后找不到文件怎么解决

在Ubuntu中,如果使用gedit保存文件后找不到文件,可以尝试以下方法解决问题:检查保存路径:确保保存文件时选择了正确的路径。可以在gedit中点击“文件” -> “另存为”来确认文件保存路径。使用终端查找文件:可以在终端中使用命令来查
ubuntu中gedit保存后找不到文件怎么解决
2024-03-12

域名解析文件存在异常怎么解决

如果您的域名解析文件存在异常,您可以尝试以下解决方法:1. 检查域名解析文件是否正确:检查您的域名解析文件是否正确配置,确保所有的IP地址、域名、记录类型和TTL值都是正确的。您可以使用在线解析工具来检查您的域名解析文件是否正确。2. 清除
2023-06-10

Python openpyxl 无法保存文件的情况如何解决

本篇内容介绍了“Python openpyxl 无法保存文件的情况如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用openpyxl
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录