最新国产好看的视频,伊人天堂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à)值,感興趣的小伙伴們可以參考一下

問(wèn)題背景:

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

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

示例:

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

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

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

分別使用a,b路徑來(lái)測(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的交互式命令行來(lái)試試

>>> 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問(wèn)題,要么是編碼問(wèn)題。通過(guò)實(shí)驗(yàn)最后證明是編碼的問(wè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版本里中文編碼問(wèn)題有多么嚴(yán)峻,這種僅僅加u的方式肯定不行,建議使用Python的unicode方法來(lái)轉(zhuǎn)化。

解決方法:

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

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

以上就是本文的全部?jī)?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ì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • python爬蟲庫(kù)scrapy簡(jiǎn)單使用實(shí)例詳解

    python爬蟲庫(kù)scrapy簡(jiǎn)單使用實(shí)例詳解

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

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

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

    python?print無(wú)法打印\r的問(wèn)題及解決

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

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

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

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

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

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

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

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

    本文主要介紹了python去除字符串中的空格、特殊字符和指定字符的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)論

库尔勒市| 萨迦县| 当阳市| 内乡县| 乐安县| 平利县| 崇州市| 逊克县| 富顺县| 洛隆县| 湛江市| 汽车| 宿松县| 蓬溪县| 富平县| 五寨县| 大石桥市| 乌拉特后旗| 南投市| 全南县| 江油市| 兰溪市| 玛沁县| 囊谦县| 南涧| 九台市| 蒙自县| 淳安县| 从化市| 吕梁市| 门源| 贵阳市| 枣阳市| 尖扎县| 岳池县| 新巴尔虎左旗| 淮北市| 嘉荫县| 兰州市| 杂多县| 陕西省|