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

Python2.7版os.path.isdir中文路徑返回false的解決方法

 更新時(shí)間:2019年06月21日 09:16:06   作者:jwensh  
這篇文章主要為大家詳細(xì)介紹了Python2.7版os.path.isdir中文路徑返回false的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

問題背景:

本來想寫一個(gè)腳本來處理硬盤里的文件,并進(jìn)行分類處理,但是發(fā)現(xiàn)一個(gè)問題,使用python內(nèi)置os模塊里的方法出現(xiàn)一些問題,具體的見示例。

主要使用的方法(python 2.7版本)

示例:

在電腦的D盤下建立兩個(gè)文件夾,并在兩個(gè)文件夾下分別建立兩個(gè)文件及目錄:

a: D:\\test\\test.txt

b: D:\測(cè)試\測(cè)試.txt

分別使用a,b路徑來測(cè)試os.path的幾個(gè)方法

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import os
a = "D:\\test\\test.txt"
b = "D:\測(cè)試\測(cè)試.txt"
 
print "a文件是否存在?" + str(os.path.exists(a))
print "a路徑是絕對(duì)路徑?" + str(os.path.isabs(a))
print "a是目錄?" + str(os.path.isdir(a))
print "a是文件?" + str(os.path.isfile(a))
print "================================="
print "b文件是否存在?" + str(os.path.exists(b))
print "b路徑是絕對(duì)路徑?" + str(os.path.isabs(b))
print "b是目錄?" + str(os.path.isdir(b))
print "b是文件?" + str(os.path.isfile(b))

執(zhí)行后得到的結(jié)果是:

a文件是否存在?True
a路徑是絕對(duì)路徑?True
a是目錄?False
a是文件?True
=================================
b文件是否存在?False
b路徑是絕對(duì)路徑?True
b是目錄?False
b是文件?False

我們可以預(yù)想一下,這兩個(gè)路徑執(zhí)行后的結(jié)果應(yīng)該是一致的,當(dāng)然結(jié)果并不是一致的,因?yàn)槭裁茨兀縿倓偟膱?zhí)行結(jié)果使用的是ide,我們使用Python的交互式命令行來試試

>>> a = "D:\\test\\test.txt"
>>> print "a文件是否存在?" + str(os.path.exists(a))
a文件是否存在?True
>>> print "a路徑是絕對(duì)路徑?" + str(os.path.isabs(a))
a路徑是絕對(duì)路徑?True
>>> print "a是目錄?" + str(os.path.isdir(a))
a是目錄?False
>>> print "a是文件?" + str(os.path.isfile(a))
a是文件?True
>>> b = "D:\測(cè)試\測(cè)試.txt"
>>> print "b文件是否存在?" + str(os.path.exists(b))
b文件是否存在?True
>>> print "b路徑是絕對(duì)路徑?" + str(os.path.isabs(b))
b路徑是絕對(duì)路徑?True
>>> print "b是目錄?" + str(os.path.isdir(b))
b是目錄?False
>>> print "b是文件?" + str(os.path.isfile(b))
b是文件?True

這時(shí)候就有尷尬了,這里執(zhí)行的結(jié)果是一致的,所以要么是ide問題,要么是編碼問題。通過實(shí)驗(yàn)最后證明是編碼的問題

import os
a = "D:\\test\\test.txt"
b = u"D:\測(cè)試\測(cè)試.txt"
 
print "a文件是否存在?" + str(os.path.exists(a))
print "a路徑是絕對(duì)路徑?" + str(os.path.isabs(a))
print "a是目錄?" + str(os.path.isdir(a))
print "a是文件?" + str(os.path.isfile(a))
 
print "b文件是否存在?" + str(os.path.exists(b))
print "b路徑是絕對(duì)路徑?" + str(os.path.isabs(b))
print "b是目錄?" + str(os.path.isdir(b))
print "b是文件?" + str(os.path.isfile(b))

執(zhí)行結(jié)果

a文件是否存在?True
a路徑是絕對(duì)路徑?True
a是目錄?False
a是文件?True
==========================
b文件是否存在?True
b路徑是絕對(duì)路徑?True
b是目錄?False
b是文件?True

好了,現(xiàn)在一致了,代碼中可以看出,只是在b的路徑上加了一個(gè)u(表示將字符串變成了Unicode編碼的字符串了),由此可以看出在python2.7版本里中文編碼問題有多么嚴(yán)峻,這種僅僅加u的方式肯定不行,建議使用Python的unicode方法來轉(zhuǎn)化。

解決方法:

b = "D:\測(cè)試\測(cè)試.txt"
b = unicode(b, 'utf-8')

總結(jié):中文問題,應(yīng)該是python2.7比較頭疼的問題,3以上應(yīng)該比較好,不用擔(dān)心這個(gè)問題,隨后在處理路徑上或其他涉及中文內(nèi)容的時(shí)候,不管是英文還是中文,都可以加上unicode(content, encoding)一步來確保無誤,希望本文能幫到你。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas中Timestamp類用法詳解

    pandas中Timestamp類用法詳解

    這篇文章主要為大家詳細(xì)介紹了pandas中Timestamp類用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python 如何用map()函數(shù)創(chuàng)建多線程任務(wù)

    python 如何用map()函數(shù)創(chuàng)建多線程任務(wù)

    這篇文章主要介紹了python 使用map()函數(shù)創(chuàng)建多線程任務(wù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python爬蟲庫scrapy簡單使用實(shí)例詳解

    python爬蟲庫scrapy簡單使用實(shí)例詳解

    這篇文章主要介紹了python爬蟲庫scrapy簡單使用實(shí)例詳解,需要的朋友可以參考下
    2020-02-02
  • 解決python讀取幾千萬行的大表內(nèi)存問題

    解決python讀取幾千萬行的大表內(nèi)存問題

    今天小編就為大家分享一篇解決python讀取幾千萬行的大表內(nèi)存問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python?print無法打印\r的問題及解決

    python?print無法打印\r的問題及解決

    這篇文章主要介紹了python?print無法打印\r的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • pytorch配置雙顯卡方式,使用雙顯卡跑代碼

    pytorch配置雙顯卡方式,使用雙顯卡跑代碼

    這篇文章主要介紹了pytorch配置雙顯卡方式,使用雙顯卡跑代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python常見錯(cuò)誤類型及解決方法

    Python常見錯(cuò)誤類型及解決方法

    如果說寫代碼最害怕什么,那無疑是Bug。而對(duì)于新手來說,剛剛接觸編程,在享受寫代碼的成就感時(shí),往往也會(huì)被各式各樣的Bug弄得暈頭轉(zhuǎn)向。Python常見錯(cuò)誤類型及解決方法,拯救你的代碼!消滅Bug的過程就是技能經(jīng)驗(yàn)的累積過程。
    2023-06-06
  • Pandas技巧分享之讀取多個(gè)文件

    Pandas技巧分享之讀取多個(gè)文件

    日常分析數(shù)據(jù)時(shí),只有單一數(shù)據(jù)文件的情況其實(shí)很少見,更多的情況是,從同一個(gè)數(shù)據(jù)來源定期或不定期的采集了很多數(shù)據(jù)文件,那么如何讀取多個(gè)文件呢,下面就和大家簡單講講
    2023-07-07
  • python去除字符串中的空格、特殊字符和指定字符的三種方法

    python去除字符串中的空格、特殊字符和指定字符的三種方法

    本文主要介紹了python去除字符串中的空格、特殊字符和指定字符的三種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作詳解

    Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作詳解

    這篇文章主要介紹了Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作,結(jié)合實(shí)例形式分析了Python GUI編程tkinter事件綁定常見操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2020-03-03

最新評(píng)論

平顺县| 常熟市| 尼木县| 南投县| 莆田市| 麦盖提县| 武功县| 民县| 临沭县| 平定县| 囊谦县| 抚顺县| 桐乡市| 乌什县| 临沧市| 霍城县| 孝感市| 宣城市| 嘉善县| 奉节县| 平武县| 昆明市| 金乡县| 柘荣县| 沁源县| 安阳县| 中西区| 古田县| 西畴县| 哈尔滨市| 翁牛特旗| 澳门| 高邮市| 乐山市| 阳高县| 乐山市| 高平市| 青海省| 永善县| 平原县| 阿瓦提县|