從今天開始,每天做幾道python面試題和資料結構的題,並做以筆記
檔案操作
defget_lines():
with open(
'file.txt
','rb
') as f:
return
f.readlines()
if__name__ == '
__main__':
for e in
get_lines():
process(e)
#處理每一行資料
現在要處理乙個大小為10g的檔案,但是記憶體只有4g,如果在只修改get_lines 函式而其他**保持不變的情況下,應該如何實現?需要考慮的問題都有那些?
defprint_directory_contents(spath):
"""這個函式接收資料夾的名稱作為輸入引數
返回該資料夾中檔案的路徑
以及其包含資料夾中檔案的路徑
"""
答案:
1.
defget_lines():
with open(
'file.txt
', 'rb'
) as f:
for i in
f: yeild i
f.readlines()是將檔案中的所有內容存入乙個列表中,當檔案較大時,會占用大量記憶體。答案變成成生成器函式,減少記憶體開支
2.
defprint_directory_contents(spath):
"""這個函式接收資料夾的名稱作為輸入引數
返回該資料夾中檔案的路徑
以及其包含資料夾中檔案的路徑
"""import
os
for s_child in
os.listdir(spath):
s_child_path =os.path.join(spath, s_child)
ifos.path.isdir(s_child_path)
print_directory_contents(s_child_path)
else
:
print(s_child_path)
運用了os模組中的os.listdir,os.path.join和os.path.isdir三個函式,需要牢記。此外,簡單實用了迭代函式
Day1 前端高頻面試題之基礎版
1 js的基本型別有哪些?引用型別有哪些?null 和 undefined 區別是什麼?基本型別 null undefined number string boolean symbol 引用型別 object array date regexp function 原始型別儲存的都是值,是沒有函式可以...
Python學習筆記Day1
16 9 19 1.python3.5中一些小小的變化 print helloworld 1 2結果為0.5 1 2實現整除 3 2乘方 pow 2,3 八進位制 十進位制 0o10 8 16進製制 十進位制 0xaf 175 2.得到上次輸入的語句 alt p 3.x input x x 2 y ...
Python學習筆記 Day1
1.python提供了乙個工具,可以將python2所寫的 自動轉換為python3可使用的語法。2.python是解釋型的,這表示python 被直譯器翻譯和執行。3.print作用 在控制台上顯示字串訊息 4.縮排問題 1 在python中每一句 都需要頂格寫,否則出現 syntaxerror ...