1. 程式人生 > >Python(pycharm)在windows下路徑 ( ‘ / ‘ 與‘ ‘ )的問題

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

文件 tps 所有 拼接 char 路徑 UNC argv 絕對路徑

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

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

應用實例:一:
當start執行文件需要導入core文件夾下的模塊時,路徑的拼接,需要sys模塊,

但是首先還要介紹os模塊
os模塊 (側重Python與windows的交互)

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

應用實例一:
技術分享圖片
註:要想在start文件中執行server中的func_server方法,就必須將core的路勁添加到start文件中,當start文件路徑中存在 E:/text1/day32/demo6_file,才能通過導入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()

所有的這些操作都不會出現路徑的問題但是當我們判斷某個文件是否存在,或者要拼接文件的路徑時,就可能會遇到路徑出錯的問題.
2.0 ‘ / ‘斜杠與‘ \ ‘反斜杠
Python在windows下的標準路徑是:E:/text1/練習與測試2/05text路徑.py 分割符是斜杠‘ / ‘ ,但是仍然可以識別 反斜杠‘ \ ‘
方法一: ‘ r ‘ 轉義

import sys
import os

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

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


方法二: 路徑拼接時,os.path.abspath(‘‘) 規範路徑

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

方法三: 添加擴展名(後綴名)

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))

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

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