為什麼會涉及這個話題呢?因為在進行一些**計算的時候,可能讀取檔案非常多,更多的時候會涉及多平台的問題,所以要確保在win和unix系統下你的程式都可以正常執行,這個時候就涉及到了絕對路徑和相對路徑的問題了!很多幫助文件講的不錯,但是沒有個系統化的思路,很難全部串起來,本系列問題解決這個,廢話不多說了,開始!
匯入必須的庫:import os, import sys
你的**檔案所在的絕對路徑使用這個完成:os.path.abspath(file),這樣就可以獲取到你的檔案所在的絕對路徑,結果等於=『d:\code\test.py』
問題是你這個檔案操作的時候,會涉及資料報data資料夾,程式包script資料夾,還可能涉及結合matlab**資料夾,所以在你上面的主程式test.py中,可以這樣來操作,獲取當前檔案所在的上層目錄:study_dir=os.path.dirname(os.path.abspath(file)=『d:\code",有了這個,程式可以相對隨意的切換目錄,讀取想要的目錄下的檔案了,好,繼續
data_dir=os.path.join(study_dir,『data』),這個的作用就是通過join函式組合路徑,可以很方便的告知程式,你的data資料夾下面存放的就是資料,所以通過data_dir你可以隨意讀取這下面的檔案了!
同理,如果你的**裡還包含了外接的matlab程式,可以這樣操作:matlab_dir=os.path.join(『c:\program files』,『matlab』,『r2017a』,『bin』,『matlab』)=『c:\program files\matlab\r2017a\bin\matlab』, 這個路徑告訴python直譯器,你的matlab可執行檔案在這裡,需要的時候你可以通過matlab_dir方便的啟動matlab,並執行你的相關的matlab**,完成相應的計算,不明白?操作下就理解了
還有個相對更重要的操作,我們寫的**檔案會放在某個資料夾下面,比如script_dir=os.path.join(study_dir,『scripts』), 你寫的有關操作的**都可以放在這裡,以後你的主程式test.py中可以很方便的通過script_dir來呼叫這些**了
上面加入搜尋路徑之後,你可以採用from你的**檔案import *, 把你寫的**模組匯入了,很方便吧?你的**檔案可以包含資料處理**、繪圖**、繪製****等等,本人主要做科研,所以基本使用的就是這些東西,你可以根據自己的需求來設計檔案,這樣好像便於管理麼。
接下來就可以通過上面的路徑讀取你的檔案,在主程式中可以存放在字典、列表等資料結構中了。比如:fs_dict=read_info(fs_dir),這樣式的,具體read_info怎麼寫呢?給個思路:(1)fs_dir傳入你資料所在路徑;(2)read_info接收這個路徑後,如果涉及讀取資料,比如大型資料之類的,可以import numpy as np, 如果會涉及其它路徑,可以import os,假設我要讀資料,並存放到fs_dict中,那麼可以這樣幹:弄個空字典fs_dict={},記住返回哈!讀某個資料檔案的時候,比如txt檔案,可以這樣操作:names_file=os.path.join(fs_dir,『name』,『names.txt』),這樣就可以獲取資料檔案存放的路徑了;(3)接下來可以存到字典了:fs_dict[『a』]=get_fs(names_file), ok,思路還清晰吧?用get_fs讀取前面路徑下的檔案了,get_fs寫法簡單,傳入路徑採用類似:labels=[line.strip() for line in open(names_file)], 好,全部讀取並進行了消除空格的操作,這裡一般資料裡存放的是一列的數字或者字串,就能全部讀入,存為了列表形式,返回labels,完成,如果需要更複雜的操作,你得想辦法自己設計相應的**了!
10.同理,各種讀檔案的方式都可以採用這種路徑管理方式完成,這個還是適合大型的資料量管理,但是自己試試總沒壞處,**就是不斷折騰,才能玩出新花樣來的!好,這個系列完成,不能寫太多,要不看糊塗了!
Python中的檔案讀寫
python內建了乙個open 方法,用於對檔案進行讀寫操作。使用open 方法操作檔案可以分三步走,一是開啟檔案,二是操作檔案,三是關閉檔案。open 方法的返回值是乙個file物件,可以將它賦值給乙個變數。其基本語法格式為 f open filename,mode ps python中,所有具有...
python 迴圈語句與注釋 檔案讀寫學習總結
一 python迴圈語句 實現功能 1 基本的求和 while 2 想經常使用 使用函式 定義函式 def 3 想獲取運算的結果和 加返回值 return 4 函式呼叫者想算自定義的和 增加介面開年 5 求指定範圍內的奇數 偶數的和 6 求等差數列的和 7 增加預設引數 求start end的和 d...
Python 中的檔案讀寫(一)
一 開啟檔案 f open d test.txt w 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只寫 如果檔案不存在,則自動建立檔案 a 附加到檔案末尾 r 讀寫 如果需要以二進位制方式開啟檔案,需要在mode後面加上字元 b...