os模組:檢視乙個資料夾下的所有檔案,這個資料夾下面還有資料夾,不能用walk
import os
defshow_file
(path)
: name_lst = os.listdir(path)
for name in name_lst:
abs_path = os.path.join(path,name)
if os.path.isfile(abs_path)
:print
(name)
elif os.path.isdir(abs_path)
: show_file(abs_path)
show_file(
'd:\python_22\day21'
)
計算斐波那契數列找第100個數
def
fib(n,a=
1,b=1)
:if n ==
1or n ==2:
return b
else
: a,b = b,a+b
return fib(n-
1,a,b)
ret = fib(
100)
print
(ret)
#----------------------------------
# 使用迴圈
deffib
(n):
a,b =1,
1while n>2:
a,b = b,a+b
n-=1return b
ret = fib(
100)
print
(ret)
**選單 但是級數可能是n級
#選單
menu =
,'網易':,
'google':}
,'中關村':,
'汽車之家':,
'youku':,
},'上地':,
},},
'昌平':,
'北航':,
},'天通苑':,
'回龍觀':,
},'朝陽':,
'東城':,
},'上海':}
},'閘北':}
},'浦東':,
},'山東':,
}#遞迴函式實現**選單
defthreelm
(dic)
: flag = ture
while flag:
for name in menu:
print
(name)
key =
input
('>>>'
).strip(
)if menu.get(key)
: dic = menu[key]
ret = threelm(dic)
flog = ret
elif key.upper()==
'b':
return
true
elif key.upper()==
'q':
return
true
threelm(menu)
import shutil
shutil.copy2(
'd:\python_22\day21\lianjia.html'
,'d:\python_22\day21\lianjia_bk.html'
)#複製檔案
shutil.copytree(
"outer"
,"outer3"
, ignore=shutil.ignore_patterns(
"__init__.py"
,#填入忽略檔案))#複製目錄
shutil.rmtree(
"d:\python_22\day21\outer3"
)#移動目錄
shutil.move(
"d:\python_22\day21\day20_bak"
,"d:\python_22\day20"
, copy_function=shutil.copy2)
#移動檔案
total, used, free = shutil.disk_usage(
"c:\\"
)print
("當前磁碟共: %igb, 已使用: %igb, 剩餘: %igb"
%(total /
1073741824
, used /
1073741824
, free /
1073741824
))顯示磁碟大小
shutil.make_archive(
'outer_z'
,'zip'
,'d:\python_22\day21\outer'
)#加壓檔案
shutil.unpack_archive(
'outer_z.zip'
,r'd:\python_22\day21\unzip'
)#解壓檔案
logging模組–日誌部分
# 同時向檔案和螢幕上輸出和解決亂碼
fh = logging.filehandler(
'tmp.log'
,encoding=
'utf-8'
)sh = logging.streamhandler(
)logging.basicconfig(
format
='%(asctime)s - %(name)s - %(levelname)s[line :%(lineno)d]-%(module)s: %(message)s'
, datefmt=
'%y-%m-%d %h:%m:%s %p'
, level= logging.debug,
handlers=
[fh,sh]
)
日誌切分
# 做日誌的切分
import time
from logging import handlers
sh = logging.streamhandler(
)rh = handlers.rotatingfilehandler(
, maxbytes=
1024
,backupcount=5)
# 按照大小做切割
fh = handlers.timedrotatingfilehandler(filename=
'x2.log'
, when=
's', interval=
5, encoding=
'utf-8'
)#按照時間進行切割
logging.basicconfig(
format
='%(asctime)s - %(name)s - %(levelname)s[line :%(lineno)d]-%(module)s: %(message)s'
, datefmt=
'%y-%m-%d %h:%m:%s %p'
, level= logging.debug,
# handlers=[fh,sh,fh2]
handlers=
[fh,rh,sh]
)for i in
range(1
,10000):
# 寫入一萬次做演示效果
time.sleep(1)
logging.error(
'keyboardinterrupt error %s'
%str
(i))
shutil 模組 os模組
shutil.copyfile src,dst 從源src複製到dst中去。如果當前的dst已存在的話就會被覆蓋掉 shutil.move src,dst 移動檔案或重新命名 shutil.copymode src,dst 只是會複製其許可權其他的東西是不會被複製的 shutil.copystat ...
logging模組,shutil模組
用於便捷記錄日誌且執行緒安全的模組 1 單檔案日誌 import logging logging.basicconfig filename 檔名.log format asctime s name s levelname s module s message s datefmt y m d h m ...
shutil模組 python shutil模組
shutil.copyfile src,dst 從源src複製到dst中去。當然前提是目標位址是具備可寫許可權。丟擲的異常資訊為ioexception.如果當前的dst已存在的話就會被覆蓋掉 shutil.move src,dst 移動檔案或重新命名 shutil.copymode src,dst ...