第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將字符串轉(zhuǎn)換為有效的文件名?

將字符串轉(zhuǎn)換為有效的文件名?

哆啦的時光機 2019-12-06 14:06:28
我有一個要用作文件名的字符串,因此我想使用Python刪除文件名中不允許的所有字符。我寧愿嚴(yán)格一點,所以假設(shè)我只保留字母,數(shù)字和一小部分其他字符,例如"_-.() "。什么是最優(yōu)雅的解決方案?文件名在多個操作系統(tǒng)(Windows,Linux和Mac OS)上必須有效-這是我?guī)熘械腗P3文件,歌曲名作為文件名,并且在3臺計算機之間共享和備份。
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經(jīng)驗 獲得超9個贊

您可以查看Django框架,了解它們?nèi)绾螐娜我馕谋緞?chuàng)建“子彈”。slug是URL和文件名友好的。


Django文本工具定義了一個函數(shù),slugify()這可能是此類事情的黃金標(biāo)準(zhǔn)。本質(zhì)上,它們的代碼如下。


def slugify(value):

    """

    Normalizes string, converts to lowercase, removes non-alpha characters,

    and converts spaces to hyphens.

    """

    import unicodedata

    value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')

    value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())

    value = unicode(re.sub('[-\s]+', '-', value))

還有更多,但我不予贅述,因為它不解決節(jié)段化,而是逃脫。



查看完整回答
反對 回復(fù) 2019-12-07
?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

只是為了使事情更加復(fù)雜,不能保證僅通過刪除無效字符就可以獲得有效的文件名。由于不同文件名上允許的字符不同,因此保守的方法可能最終將有效名稱變成無效名稱。在以下情況下,您可能需要添加特殊處理:

  • 該字符串是所有無效字符(留空字符串)

  • 您最終得到一個具有特殊含義的字符串,例如“。”。要么 ”..”

  • 在Windows上,某些設(shè)備名稱被保留。例如,您無法創(chuàng)建名為“ nul”,“ nul.txt”(或?qū)嶋H上是nul.anything)的文件。保留名稱為:

    CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9

您可以通過在文件名前添加一些字符串來解決這些問題,這些文件名永遠不會導(dǎo)致這些情況之一,并去除無效字符。



查看完整回答
反對 回復(fù) 2019-12-07
  • 3 回答
  • 0 關(guān)注
  • 403 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號