s(operation system 作業系統): 提供一種方便的使用作業系統函式的方法os模組常用的方法:sys(system): 提供訪問由直譯器使用或維護的變數和在與直譯器互動使用到的函式。
1.os.listdir() 列出目錄下的檔案
2.os.remove() 刪除檔案
3.os.rename() 重新命名檔案
4.os.chdir() 改變路徑
5.os.mkdir() 建立資料夾
注意點:遞迴遍歷某個資料夾下的所有檔案
【擴充套件】:面試過程中肯會被問題:如果給你乙個資料夾這個檔案中也巢狀n層資料夾,且每層資料夾中是否有普通的檔案 不一定
請寫乙個程式,將所有的不同層級的資料夾中的檔名 進行列印
sys模組常用的方法:
1.sys.path 模組的搜尋路徑(我們的python程式遇到了import時,到底去**找這些模組,sys.path指定的路徑中找)
2.sys.stdin 就是標準輸入,與此類推sys.stdout就是標準輸出
只要是程式 一般會有
import sys
print
("-----1----"
)print
(sys.stdin)
print
("-----2----"
)print
(sys.stdin.read(3)
)# 從鍵盤獲取2個資料
print
("-----3----"
)sys.stdout.write(
"111111"
)# 專案螢幕輸出111111
print
("-----4----"
)
**不會正常執行,丟擲 typeerror 異常。
a =
(100,)
a[0]=
200# typeerror: 'tuple' object does not support item assignment
print 方法預設呼叫 sys.stdout.write 方法,即往控制台列印字串。
import sys
print
("hello"
)# 輸出hello
sys.stdout.write(
"hello"
)# 輸出hello
sys.stdout.write(
"\n"
)# 輸出hello
class
parent
(object):
x =1class
child1
(parent)
:pass
class
child2
(parent)
:pass
print
(parent.x, child1.x, child2.x)
child1.x =
2print
(parent.x, child1.x, child2.x)
parent.x =
3print
(parent.x, child1.x, child2.x)
輸出資料為:1 1 1
1 2 1
3 2 3
原因:如果當前類有這個需要的雷屬性就用自己的,如果沒有則用父類的,如果父類依然沒有那麼就會報錯
在 python3 中,input()獲取使用者輸入,不論使用者輸入的是什麼,獲取到的都是字串型別的。
在 python2 中有 raw_input()和 input()raw_input()和 python3 中的 input()作用是一樣的,
input()輸入的是什麼資料型別的,獲取到的就是什麼資料型別的。
注意:python2現在基本不用了,且其作者也明確說明了;因此以後 如果在終端中獲取資料只用python3的input即可
"1+1"
# 假如在python3中 input 獲取了 [1, 2, 3],此時 會是乙個字元次'[1, 2, 3]'
# 但是如果在python2中,input 呼叫時 我們輸入了 [1, 2, 3],那麼真的就是 給他輸了乙個列表[1, 2, 3]
a0 =
dict
(zip((
'a',
'b',
'c',
'd',
'e'),(
1,2,
3,4,
5)))
print
(a0)
# a1 =
range(10
)# python2中返回的是乙個列表(有缺陷:如果需要建立的列表很大,那麼就需要很大的記憶體空間),所以在python3中進行了優化,最終返回的是乙個可以迭代的物件,什麼時候需要 什麼時候計算
print
(a1)
# range(0, 10)
a2 =
[i for i in a1 if i in a0]
print
(a2)
# a3 =
[a0[s]
for s in a0]
print
(a3)
# [1, 2, 3, 4, 5]
a4 =
[i for i in a1 if i in a3]
print
(a4)
# [1, 2, 3, 4, 5]
a5 =
print
(a5)
# a6 =
[[i, i * i]
for i in a1]
print
(a6)
# [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
# **一
l =[
]for i in
range(10
):)print
(l)# **二: 再考慮以下**,執行結束後的結果是什麼?
l =[
]a =
for i in
range(10
):a[
'num'
]= i
print
(l)# 以上兩段**的執行結果是否相同,如果不相同,原因是什麼?
# 續操作修改 a['num']的值的時候,l 中的值也會跟著改變,相當於淺拷貝。
for i in
range(5
,0,-
1):print
(i)
結果為:54321
os.path 是乙個模組主要用於獲取檔案的屬性。例如 os.path.basename(path)返回檔名
sys.path是由目錄名構成的列表,python 從中查詢擴充套件模組( python 源模組, 編譯模組,或者二進位制擴充套件).方法一啟動python 時,這個列表從根據內建規則,pythonpath 環境變數的內容, 以及登錄檔( windows 系統)等進行初始化.
可以通過生成器,分多次讀取,每次讀取數量相對少的資料(比如 500mb)進行處理,處理結束後
再讀取後面的 500mb 的資料。
方法二可以通過 linux 命令 split 切割成小檔案,然後再對資料進行處理,此方法效率比較高。可以按照行
數切割,可以按照檔案大小切割。
Python面試題300道,備戰春招!
作者 kenwoodjw 責編 jane 出品 python大本營 id pythonnews 過年開工回來到現在,營長每天在地鐵裡只看到了兩家公司的廣告 前兩周是拉勾網,最近都是 boss直聘,求職 跳槽到現在,你是否已經成功,offer 在手了呢?也正是這個廣告,提醒了營長,是不是要給大家準備一...
前端面試 前端面試題300道
jsonp是如何產生的 1 乙個眾所周知的問題,ajax直接請求普通檔案存在跨域無許可權問題,甭管你是靜態頁面 動態頁面 web伺服器,wcf,只要是跨域請求,一律不准。2 不過我們又發現,web頁面上呼叫js檔案時則不受是否跨域的影響 不僅如此,我們還發現凡是擁有 src 這個屬性的標籤都擁有跨域...
python面試題兩道
給乙個字串 123456789 在任意字元中間插入 四種運算子,使最後的計算結果等於50。例如你可以如此插入 1 56 7 89,使這個式子的最終結果等於50。輸出所有可能的式子結果。def make 50 self list str list self spr sum 50 for a in sp...