# PYTHON 筆記(下)
第八章到第十章的濃縮
## 第八章(類別)
跟JAVA的結構一樣
### 類別
```
class f():
def __init__(self,name):
self.name = name
a = f('yee')
print(a.name)
```
宣告結構 F
F ->NAME
當 A -> F
此時 A->NAME
為更改值 yee
### 繼承
```
class f():
def __init__(self,name):
self.name = name
class f1(f):
def __init__(self,name):
super().__init__('yee' + name)
a = f('yee')
b = f1('yee')
print(a.name)
print(b.name)
```
super() 繼承 父類別
須注意 class f1(f)
子類別(父類別)
### 測試
```
try:
test
except:
print('error')
```
通常用於測試語法
當語法產生錯誤
## 第九章(字串進階)
真的沒意義 :(
### UNICODE
```
import unicodedata
def unicode_name(value):
name = unicodedata.name(value)
print('value =',value,'name=',name)
return name
def unicode_loookup(name):
value = unicodedata.lookup(name)
print('name =',name,'value=',value)
return value
if __name__ == '__main__':
name = unicode_name('我')
value = unicode_loookup(name)
name = unicode_name('\u6211')
value = unicode_loookup(name)
name = unicode_name('\U00006211')
value = unicode_loookup(name)
name = unicode_name('\N{CJK UNIFIED IDEOGRAPH-6211}')
value = unicode_loookup(name)
```
unicode_name 轉成uncicode
unicode_lockup 尋找字元
### 加密與解密
```
def utf8(data):
data_byte=data.encode('utf-8')
data2=data_byte.decode('utf-8')
print('將',data,'經過utf8編碼為',data_byte)
print('將', data_byte, '經過utf8解碼為', data2)
print(data,'的長度為',len(data))
print(data_byte, '的長度為', len(data_byte))
if __name__ == '__main__':
print('我'.encode('unicode-escape'))
utf8('我')
utf8('\u6211')
```
用utf8 做舉例
data.encode('utf-8') 資料加密
data_byte.decode('utf-8') 資料解密
### 密碼產生
```
import string
import random
if __name__ == '__main__':
chs = string.ascii_letters + string.digits
pwd = ""
for x in range(random.randint(8,12)):
pwd += random.choice(chs)
print(pwd)
```
string.ascii_letters 生成所有字母
string.digits 生成所有數字
透過字串的方式
去產生隨機亂碼
## 第十章(資料夾)
### 函式引入
```
import os
import glob
```
glob模組:用於查找匹配特定模式的檔路徑。
它支持類似於Unix shell的萬用字元匹配,如*和?等。
os模組:提供了一種方式來使用作業系統依賴的功能。
比如檔操作、路徑操作、進程管理等。
### 查找所有檔案
```
import os
def find_dir(dir):
fds = os.listdir(dir)
for fd in fds:
full_path = os.path.join(dir,fd)
if os.path.isdir(full_path):
print('資料夾:',full_path)
find_dir(full_path)
else:
print('檔案:',full_path)
if __name__ == '__main__':
path = 'C:\\python-home'
find_dir(path)
```
os.stdir 返回資料夾內容列表
os.path.isdir 檢查是否有此目錄
### 查找特定類型檔案
```
import glob
if __name__ == '__main__':
python_files = glob.glob('C:\\*.txt')
for file_name in python_files:
print('檔案為' + file_name)
with open(file_name) as f:
for line in f:
print(line.rstrip())
print()
```
PATH 需填入絕對位置