溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python(pycharm)在windows下路徑 ( ' / ' 與' \ ' )的問題

發(fā)布時(shí)間:2020-07-11 05:19:56 來源:網(wǎng)絡(luò) 閱讀:7783 作者:even_07 欄目:編程語言

1.0 首先了解Python中與pycharm,windows交互的模塊(這二個(gè)模塊可以避免出現(xiàn)路徑錯誤的問題)
sys模塊 (側(cè)重Python與pycharm交互)
提供的與路徑相關(guān)的方法有:

__file__               # 當(dāng)前執(zhí)行文件所在的絕對路徑
sys.path              # 當(dāng)前執(zhí)行文件下所有的路徑 
sys.argv              # 當(dāng)前執(zhí)行文件所在的絕對路徑,列表的形式['絕對路徑']
sys.path.append(路徑)           # 添加路徑到當(dāng)前的文件下

應(yīng)用實(shí)例:一:
當(dāng)start執(zhí)行文件需要導(dǎo)入core文件夾下的模塊時(shí),路徑的拼接,需要sys模塊,
但是首先還要介紹os模塊
os模塊 (側(cè)重Python與windows的交互)

os.path.abspath()     規(guī)范化路徑(重要 可以將不確定'/'與'\'路徑規(guī)范化)   # 規(guī)范的路徑:E:/text1/練習(xí)與測試2/05text路徑.py
os.path.dirname('E:/text1/練習(xí)與測試2/05text路徑.py')             # 獲取路徑: E:/text1/練習(xí)與測試2
os.path.basename('E:/text1/練習(xí)與測試2/05text路徑.py'))        # 獲取路徑: 05text路徑.py
os.path.join(path2,path3)                                                           # 路徑的拼接
os.path.exists(path)                                                                   # 判斷文件是否存在

應(yīng)用實(shí)例一:
Python(pycharm)在windows下路徑 (  ' / ' 與' \ '  )的問題
注:要想在start文件中執(zhí)行server中的func_server方法,就必須將core的路勁添加到start文件中,當(dāng)start文件路徑中存在 E:/text1/day32/demo6_file,才能通過導(dǎo)入core,找到server,引用其中的func_server方法;

import os
import sys

ori_path = __file__                                # E:/text1/day32/demo6_file/bin/start.py
path = os.path.dirname(ori_path)         # E:/text1/day32/demo6_file/bin
base_path = os.path.dirname(path)     # E:/text1/day32/demo6_file
sys.path.append(base_path)

from core import server
from core import client

server.func_server()

所有的這些操作都不會出現(xiàn)路徑的問題但是當(dāng)我們判斷某個(gè)文件是否存在,或者要拼接文件的路徑時(shí),就可能會遇到路徑出錯的問題.
2.0 ' / '斜杠與' \ '反斜杠
Python在windows下的標(biāo)準(zhǔn)路徑是:E:/text1/練習(xí)與測試2/05text路徑.py 分割符是斜杠' / ' ,但是仍然可以識別 反斜杠' \ '
方法一: ' r ' 轉(zhuǎn)義

import sys
import os

print(__file__)     # E:/text1/練習(xí)與測試2/05text路徑.py
print(os.path.exists('E:/text1/練習(xí)與測試2/05text路徑.py'))              # True
print(os.path.exists('E:\text1\練習(xí)與測試2\05text路徑.py'))              # Flase
print(os.path.exists(r'E:\text1\練習(xí)與測試2\05text路徑.py'))             # True

path=os.path.abspath(r'E:\text1\練習(xí)與測試2\05text路徑.py')
print(path)                                                                                           # E:\text1\練習(xí)與測試2\05text路徑.py
print(os.path.exists(path))                                                                   # True


方法二: 路徑拼接時(shí),os.path.abspath('') 規(guī)范路徑

path=os.path.join(r'E:\text1\練習(xí)與測試2','05text路徑.py')
new_path=os.path.abspath(path)
print(os.path.exists(new_path))

方法三: 添加擴(kuò)展名(后綴名)

import sys
import os

head = {'filename': '1.EPIC**.mp4**',     # 加后綴名   (這不就是要知道文件的類型嗎?)
        'filesize': None,
        'filepath': r'C:\Users\Administrator\Desktop\英語\Download\倫敦街頭美食',
        'file_name': None}

file_name = os.path.join(head['filepath'], head['filename'])
print(os.path.exists(file_name))
file_name = os.path.abspath(file_name)
print(os.path.exists(file_name))

注:這三種方法要結(jié)合的用
附: 常見的文件后綴
(出處: https://jingyan.baidu.com/article/e3c78d64752db43c4c85f5fc.html?qq-pf-to=pcqq.group )
.AVI .mp4影像文件
.BAK 備份文件
.BAT DOS中的批處理文件
.BMP 位圖文件
.COM, .EXE 可執(zhí)行的程序文件
.DLL 動態(tài)鏈接庫文件
.DOC Word字處理文檔
.DRV 設(shè)備驅(qū)動程序文件
.ICO 圖標(biāo)文件
.INF 安裝信息文件
.INI 系統(tǒng)配置文件
.CHM 已編譯的HTML幫助文件
.JPG 一種常用圖形文件
.MID MIDI音樂文件
.MDB Access數(shù)據(jù)庫文件
.RTF 豐富文本格式文件
.SCR 屏幕保護(hù)程序文件
.SYS 系統(tǒng)文件
.TTF TrueType字體文件
.TXT 文本文件
.XLS Excel電子表格文件
.WAV 波形文件
.HTM 用于WWW(World Wide Web)的超級文本文件

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI