基本算法就是二叉樹的遍歷,首先想到的是深度優(yōu)先遍歷。

站在用戶的角度思考問題,與客戶深入溝通,找到鳳山網站設計與鳳山網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站制作、成都做網站、企業(yè)官網、英文網站、手機端網站、網站推廣、主機域名、網站空間、企業(yè)郵箱。業(yè)務覆蓋鳳山地區(qū)。
難點在于,如何實現每個子路徑的記錄和append
binaryTreePaths函數只給了root變量,無法存儲每個子路徑,考慮寫輔助函數res,添加存儲路徑的變量
res(root,temp)
同時還需要一個全局變量result存儲最后的輸出結果,result.append(temp)
概述
使用os.path.abspath()函數來獲取文件絕對路徑
解析
文件目錄結構如下:
假設app.py中想讀取config.ini文件的內容,首先app.py需要知道config.ini的文件路徑,從目錄結構上可以看出,config.ini與app.py的父目錄同級,也就是獲取到app.py父目錄(bin文件夾的路徑)的父目錄(config文件夾路徑)的絕對路徑再拼上config.ini文件名就能獲取到config.ini文件:
首先,在app.py中測試一下:
import os
def load_file():
# 獲取當前文件路徑
current_path = os.path.abspath(__file__)
# 獲取當前文件的父目錄
father_path = os.path.abspath(os.path.dirname(current_path) + os.path.sep + ".")
# config.ini文件路徑,獲取當前目錄的父目錄的父目錄與congig.ini拼接
config_file_path=os.path.join(os.path.abspath(os.path.dirname(current_path) + os.path.sep + ".."),'config.ini')
print('當前目錄:' + current_path)
print('當前父目錄:' + father_path)
print('config.ini路徑:' + config_file_path)
load_file()
#out:
從結果中可以看到一切都正常,沒有什么問題,假如現在需要從main.py中執(zhí)行app.py的load_file()方法呢?
來測試一下:
main.py(處于同級目錄):
from bin.app import load_file
if __name__=='__main__':
load_file()
#out:
可以看到,獲取的路徑是完全沒有問題的
拓展內容
python os.path 常用模塊介紹
os.path.abspath(path)?返回path規(guī)范化的絕對路徑(但這個路徑不一定是真實的路徑),如果path僅是一個文件名,使用該函數后返回的路徑是當前工作目錄路徑連接改文件名后所組成的新的路徑名。
import os.path
os.path.abspath("a.py")
'C:\\Users\\Administrator\\a.py'
os.path.split(path)?將path分割成目錄和文件名二元組返回
os.path.split("C:\\Users\\Administrator\\a.py")
('C:\\Users\\Administrator', 'a.py')
os.path.dirname(path)?返回path的目錄,其實就是os.path.split(path)的第一個元素
os.path.dirname("C:\\Users\\Administrator\\a.py")
'C:\\Users\\Administrator'
os.path.basename(path)?返回path最后的文件名。如果path以/或\結尾,就會返回空值。即os.path.split(path)的第二個元素。
os.path.basename("C:\\Users\\Administrator\\a.py")
'a.py'
os.path.commonprefix(list)?返回list中所有path共有的最長的路徑,從左向右,相同字符。
os.path.exists(path)?如果path存在,返回True;如果path不存在,返回False。
os.path.isabs(path)?如果path是絕對路徑,返回True。
os.path.normpath(path)?規(guī)范path字符串形式(規(guī)范文件路徑)
os.path.isfile(path)?判斷路徑是否為文件,是返回True,否則返回False
os.path.isdir(path)?如果path是一個存在的目錄,返回True,否則返貨False。
os.path.islink(path)?是否是鏈接;但如果系統不支持鏈接,則返回False。
自己組合吧。用os.getcwd得到當前工作目錄。os.chdir改變當前目錄
import os
os.chdir("/usr/local/include")
os.getcwd()
'/usr/local/include'
在寫python程序時,常能用到一些函數和方法,總結一下,保存起來,方便查詢。
一、內置函數
# abs()獲取數字絕對值
# chr(i)數字轉換為字符類型
# divmod() 獲取兩個數值的商和余數
# enumerate() 將可遍歷序列組合為索引序列
# float()轉換為浮點數
# format() 格式化字符串
# int()轉換為整數?
# input() 接受用戶輸入內容
# len() 計算元素個數
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定數值的上舍整數
# open()打開文件并返回文件對象
# pow() 冪運算
# print()打印輸出?
# range() 生成器
# reversed()反轉所有元素
# round()四舍五入求值
# sorted()對可迭代對象進行排序?
# str() 轉換為字符串
# sum() 求和
# set() 創(chuàng)建集合
# tuple() 將序列轉換為元組
# zip()將可迭代對象打包成元組
二、方法
# append() 添加列表元素
# capitalize()首字母轉換為大寫?
# count()字符出現次數
# close() 關閉文件
# decode() 解碼字符串
# dict.keys() 獲取字典所有的鍵
# find()字符串首次出現的索引
# f.read() 讀取文件內容
# dict.update()更新字典
# dict.items() 獲取字典鍵/值對
# dict.get() 返回指定鍵的值
# encode() 編碼字符串
# list.sort() 排序列表元素
# index() 元素首次出現的索引
# isdigit() 判斷字符串是否只由數字組成
# isupper() 是否所有字母都為大寫
# isnum() 判斷字符串是否由字母和數字組成
# islower() 是否所有字母都為小寫
# isdecimal() 檢查字符串是否只包含十進制字符
# isalpha() 檢測字符串是否為純字母
# random.shuffle()隨機排序
# random.sample()返回無重復隨機數列表
# random.choice() 返回一個隨機元素
# random.randint() 生成指定范圍的隨機整數
# random.randrange() 生成指定范圍的指定遞增基數隨機整數
# pop() 刪除列表中的元素
# remove()刪除列表中的指定元素
# strip()去除空格
# lstrip()去除左側空格
# rstrip() 去除右側空格
# readline() 讀取單行內容
# root.after() Tkinter中等待一段時間后再執(zhí)行命令
# str.isnumeric() 驗證字符串是否為數字(適用于Unicode)
# split()分割字符串
# ord() 將字符轉換為整數
# replace() 字符串替換
# ljust() 左對齊填充
# rjust() 左對齊填充
# readlines() 讀取所有行內容
# datetime.datetime.now() 返回指定時區(qū)的本地日期時間
# datetime.datetime.today() 獲取當前本地日期的date對象
# datetime.utcnow() 返回當前UTC時間的datetime對象
# time.strptime()把時間字符串解析為元組
# time.time()返回當前時間的時間戳
# time.sleep()暫停指定秒數
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收時間元組并返回時間戳
# os.getcwd() 獲取當前工作目錄
# os.listdir() 獲取指定路徑下的目錄和文件列表
# os.makedirs() 遞歸創(chuàng)建目錄
# os.rename() 重命名目錄或文件
# os.path.exists() 判斷路徑是否存在
# upper() 全部轉換為大寫字母
# lower()? 全部轉換為小寫字母
# sys.stdout.write() 標準輸出打印
# sys.stdout.flush()刷新輸出?
# shutil.copy() 復制單個文件到另一文件或目錄
# write() 寫入文件內容
# winsound.Beep() 打開電腦揚聲器
# zfill() 在字符串前面填充0
三、循環(huán)語句
# break終止當前循環(huán)
# continue 終止本循環(huán)進入下一次循環(huán)
# with open() as file 以with語句打開文件(數據保存)
四、轉義字符
\ 行尾續(xù)行符
\' 單引號?
\'' 雙引號
\a 響鈴
\e 轉義
\n 換行
\t 橫向制表符
\f 換頁
\xyy 十六進制yy代表的字符
\\反斜杠符號
\b 退格
\000 空
\v 縱向制表符
\r 回車
\0yy 八進制yy代表的字符
\other 其他的字符以普通格式輸出
python中調用寫文件函數的方法:
使用“open(‘文件路徑’, ‘w’)”語句就可以打開文件了,然后用“write(內容)”函數就可以將文件寫入進去了
示例代碼如下:
執(zhí)行結果如下:
更多Python知識,請關注:Python自學網!!
路徑有兩種,相對路徑和絕對路徑。 對于Unix-Like系統來說,絕對路徑就是以/開頭的路徑。 相對路徑就是不以/開頭的路徑。
其實,操作系統中實際只有一種路徑,那就是絕對路徑。 相對路徑,只是程序自己幫我們修改為絕對路徑了。
操作系統的程序運行器利用環(huán)境變量,為我們把相對路徑生成為絕對路徑。getcwd()函數用于得到當前進程的當前工作路徑。也就是相對路徑的起始點。
在Python中,可以使用os.chdir函數切換當前工作路徑。
當前工作路徑,是程序執(zhí)行時所在的路徑。 我們在哪個目錄下執(zhí)行程序,當前路徑就是哪一個目錄。
我們常常需要在python中執(zhí)行一些源碼目錄下的文件。如,我們可能需要用eval動態(tài)執(zhí)行一個python源文件。或者copy一些配置文件到目標系統的路徑下。此時,我們無法知道這些文件的絕對路徑,因為我們不能預知用戶會把我們的程序安裝到哪一個目錄下。
我們也不能依賴于當前工作路徑。因為用戶很可能不在我們的源碼目錄下執(zhí)行我們的程序。
那么,此時我們如何得到源碼目錄下文件的絕對路徑呢?
我是這樣做的:
ABSPATH=None
if __name__ == '__main__':
ABSPATH=os.path.abspath(sys.argv[0])
ABSPATH=os.path.dirname(ABSPATH)+"/"
print ABSPATH
網站標題:python路徑函數 Python獲取路徑
網站地址:http://chinadenli.net/article44/hijdhe.html
成都網站建設公司_創(chuàng)新互聯,為您提供ChatGPT、商城網站、網站收錄、網站維護、用戶體驗、網站導航
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯