最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Python保存文件名太長(zhǎng)OSError: [Errno 36] File name too lon

 更新時(shí)間:2022年05月10日 14:38:53   作者:XerCis  
這篇文章主要介紹了解決Python保存文件名太長(zhǎng)OSError: [Errno 36] File name too lon問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

保存文件名太長(zhǎng)OSError: [Errno 36] File name too lon

問題描述

安裝

pip install python-docx

代碼

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

報(bào)錯(cuò) OSError: [Errno 36] File name too long

解決方案

Linux 和 Windows 文件名限制約為 255 個(gè)字符

def shorten_filename(filename, limit=100):
? ? """返回合適長(zhǎng)度文件名,中間用...顯示"""
? ? 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超長(zhǎng)文件名解決

今天用python,寫一個(gè)批量移動(dòng)文件的代碼!

大家看到了,將近900個(gè)項(xiàng)目,好幾層的目錄,一個(gè)項(xiàng)目一下面有50幾張的照片,要把這些照片集中移動(dòng)到第一層的目錄下面。

最初我的代碼是這樣寫的:

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

目錄有好幾個(gè)層級(jí),前面的 for 循環(huán)就不細(xì)述,感覺代碼都沒錯(cuò)。

運(yùn)行后總是報(bào)錯(cuò),F(xiàn)ileNotFoundError: [WinError 3] 系統(tǒng)找不到指定的路徑。

后面發(fā)現(xiàn)是文件名超過255位造成的。

最后的解決方法是將相對(duì)路徑改為絕對(duì)路徑,并在路徑前方加上“\\?\”。

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

  • 這個(gè)解決方法是想辦法告訴電腦我的路徑長(zhǎng)度很長(zhǎng)。首先我查詢了windows下文件路徑的最大長(zhǎng)度是多少,查到的結(jié)果是260.這對(duì)于絕大多數(shù)情況都足夠用了,但是文件路徑長(zhǎng)的問題還是存在的。
  • 然后就看到了UNC的定義,原來windows下的文件路徑的長(zhǎng)度最大可以是3萬多的長(zhǎng)度,具體多少記不清了哈哈哈。
  • 只要在絕對(duì)路徑的前面加上“\\?\”就能告訴計(jì)算機(jī)我需要使用最大的路徑長(zhǎng)度,這樣就不會(huì)出現(xiàn)路徑太長(zhǎng)而導(dǎo)致的無法操作的問題了。

怎么加“\\?\”這里沒有說太清楚了

試了好幾次,發(fā)現(xiàn)要加好多個(gè)\總算得到結(jié)果,代碼如下供參考:

import os
from shutil import move
path_list = os.listdir('./qi')
#幾次循環(huán),獲得藏在最底層目錄的文件名
for path in path_list:
    path_list1 = os.listdir('./qi/'+path)
    for path1 in path_list1:
        path_list2 = os.listdir('./qi/'+path+'/'+path1)
        for img in path_list2:
            png_list = os.listdir('./qi/'+path+'/'+path1+'/'+img)
            for png in png_list:
                #獲得絕對(duì)路徑
                old_path = os.path.abspath('./qi'+'/'+path+'/'+path1+'/'+img+'/')
                new_path = os.path.abspath('./qi'+'/'+path+'/')
                #在絕對(duì)路徑前加料,就可以識(shí)別了
                oldfile = os.path.join('\\\?\\'+old_path,png)
                newfile = os.path.join('\\\?\\'+new_path,png)
                move(oldfile,newfile)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python接口自動(dòng)化測(cè)試數(shù)據(jù)和代碼分離解析

    python接口自動(dòng)化測(cè)試數(shù)據(jù)和代碼分離解析

    代碼的可維護(hù)性除了代碼冗余之外還有就是數(shù)據(jù)盡量不要和代碼摻雜在一起,因?yàn)殚喿x起來會(huì)非常的凌亂;數(shù)據(jù)分離能更好的增加代碼可讀性和可維護(hù)性,也能更好的二次修改使用
    2021-09-09
  • PyCharm下載和安裝詳細(xì)步驟

    PyCharm下載和安裝詳細(xì)步驟

    這篇文章主要介紹了PyCharm下載和安裝詳細(xì)步驟,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python 使用 multiprocessing 模塊創(chuàng)建進(jìn)程池的操作方法

    Python 使用 multiprocessing 模塊創(chuàng)建進(jìn)程池的操作方法

    在現(xiàn)代計(jì)算任務(wù)中,尤其是處理大量數(shù)據(jù)或計(jì)算密集型任務(wù)時(shí),使用并行處理可以顯著提升程序性能,Python的multiprocessing模塊提供了創(chuàng)建進(jìn)程池的功能,通過預(yù)先創(chuàng)建的進(jìn)程來并發(fā)執(zhí)行任務(wù),避免了頻繁的進(jìn)程創(chuàng)建和銷毀,感興趣的朋友一起看看吧
    2024-10-10
  • python實(shí)現(xiàn)多進(jìn)程并發(fā)控制Semaphore與互斥鎖LOCK

    python實(shí)現(xiàn)多進(jìn)程并發(fā)控制Semaphore與互斥鎖LOCK

    本文主要介紹了python實(shí)現(xiàn)多進(jìn)程并發(fā)控制Semaphore與互斥鎖LOCK,通過實(shí)例來介紹互斥鎖和進(jìn)程并發(fā)控制 semaphore的具體使用,感興趣的同學(xué)可以了解一下
    2021-05-05
  • Python?對(duì)象拷貝及深淺拷貝區(qū)別的詳細(xì)教程示例

    Python?對(duì)象拷貝及深淺拷貝區(qū)別的詳細(xì)教程示例

    這篇文章主要介紹了Python?對(duì)象拷貝及深淺拷貝區(qū)別的詳細(xì)教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 詳解Python定時(shí)器Timer的使用及示例

    詳解Python定時(shí)器Timer的使用及示例

    這篇文章主要介紹了詳解Python定時(shí)器的使用及示例,Timer定時(shí)器源碼實(shí)現(xiàn),和自定義一個(gè)線程方式一樣,都是繼承Thread類,重寫了run()方法,只是實(shí)現(xiàn)的功能是延時(shí)執(zhí)行一個(gè)函數(shù)或方法,需要的朋友可以參考下
    2023-05-05
  • Python編程使用有限狀態(tài)機(jī)識(shí)別地址有效性

    Python編程使用有限狀態(tài)機(jī)識(shí)別地址有效性

    這篇文章主要介紹了Python編程中如何使用有限狀態(tài)機(jī)識(shí)別地址有效性,如何識(shí)別一個(gè)地址是否有效,確切的講,如何編程識(shí)別一個(gè)中國地址是否有效
    2021-09-09
  • 詳細(xì)解讀Python中解析XML數(shù)據(jù)的方法

    詳細(xì)解讀Python中解析XML數(shù)據(jù)的方法

    這篇文章主要介紹了Python中解析XML數(shù)據(jù)的方法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • 利用python生成照片墻的示例代碼

    利用python生成照片墻的示例代碼

    這篇文章主要介紹了利用python生成照片墻的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Django中使用haystack+whoosh實(shí)現(xiàn)搜索功能

    Django中使用haystack+whoosh實(shí)現(xiàn)搜索功能

    這篇文章主要介紹了Django之使用haystack+whoosh實(shí)現(xiàn)搜索功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

黄浦区| 瓦房店市| 林西县| 咸宁市| 临汾市| 武陟县| 乐亭县| 太和县| 合江县| 泽普县| 曲阳县| 吉林市| 巴彦县| 准格尔旗| 册亨县| 普格县| 兴宁市| 大新县| 罗定市| 平度市| 荣成市| 晴隆县| 平和县| 衡阳市| 盘山县| 丹巴县| 泗阳县| 大方县| 永康市| 萨嘎县| 青州市| 利津县| 平乐县| 香港 | 遂川县| 宜昌市| 武川县| 获嘉县| 蒙自县| 外汇| 安岳县|