-
python 模組
os模組
operating system
import os
os.getcwd() 取得目前的檔案 路徑資料夾(不含檔案名稱)
current working directory
os.remove(檔案(包含副檔名)與路徑) 刪除檔案
os.mkdir("資料夾名稱") 新增資料夾(目錄) (已有同名檔案無法新增)
os.rmdir("資料夾名稱") 刪除資料夾(目錄) (資料夾有內容無法刪除)
os.walk(os.getcwd()) 掃描路徑資料夾往下及本身 有的
當前路徑+該層所有資料夾+該層所有檔案 回傳tuple n*3 (可用for來接資料)
這邊我輸入目前檔案 路徑資料夾與(不含檔案名稱)
os.path.exists(檔案(包含副檔名)與路徑) 是否存在 回傳布林
os.path.abspath(檔案(包含副檔名)與路徑) 回傳 路徑資料夾與檔案名稱
os.path.basename(檔案(包含副檔名)與路徑 或 路徑) 輸入檔案回傳 (不含路徑資料夾)與檔案名稱;輸入路徑回傳路徑資料夾
os.path.dirname(檔案(包含副檔名)與完整路徑) 輸入檔案回傳路徑資料夾與(不含檔案名稱)
os.path.getsize(檔案(包含副檔名)與路徑) 檔案大小(位元組)
os.path.isabs(檔案(包含副檔名)與路徑 或 路徑) 是否提供完整路徑
os.path.isfile(一個東西) 是否是檔案
os.path.isdir(一個東西) 是否是資料夾
os.path.split(檔案(包含副檔名)與可以有完整路徑) 分割路徑資料夾+檔案名稱 回傳tuple 2
os.path.splitdrive(檔案(包含副檔名)與可以有完整路徑) 分割磁碟+路徑資料夾(少了磁碟)與檔案名稱 回傳tuple 2
os.path.join(一堆東西) 把所有東西包起來
system(指令) 直接執行命令提示字元CMD
os.system("cls") 淨空CMD畫面
os.system("mkdir 資料夾名稱") 新增資料夾(目錄)
os.system("copy 要複製的檔案名稱 自訂路徑\複製後的名稱(可以不用副檔名,預設與原檔案相同)") 複製指定檔案到指定位置並命名
shutil模組
import shutil
shutil.copy(要複製的檔案名稱 , 複製後的名稱)
shutil.copytree(要複製的目錄名稱(包含內容檔案一起複製) , 複製目的目錄名稱)
shutil.rmtree(要刪除的目錄(包含內容檔案一起刪除))
shutil.move(移動前 目錄 或 檔案 位置 , 移動後 目錄 或 檔案 位置)
glob模組
import glob
glob.glob(檔案名稱)
可使用萬用字元*
glob.glob("my*.*") 找預設資料夾中所有my開頭(而非作為副檔名) 的檔案
glob.glob("*.ipynb") 找預設資料夾中所有副檔名為ipynb的檔案
回傳是符合條件的所有檔案名稱 tuple n
ast模組
import ast
"字典格式的"文字 轉 字典
ast.literal_eval(檔案的內文) 回傳字典(檔案內文需要字典格式)(用來接收的東西需要先定義為字典格式)
檔案處理
傳統寫法 需要close cf.with寫法
示範'''跨行字串'''
content = '''Hello Python
中文字側式
Welcome
'''
變數名稱=open(檔案名稱,'w',newline="") 讀檔到變數
w 之後會更動檔案內容
r 之後只讀取
a 之後會再末端增加內容
變數名稱.write(字串) 寫字串到檔案 (檔案會只有該字串)
變數名稱.close() 關閉檔案 釋放記憶體
變數名稱.flush() 強制將資料立刻寫入檔案 清空緩衝區(同close釋放記憶體?)
變數名稱.read([size]) 讀取size長度的字元 size沒設定 預設讀取所有字元 (包含換行符號\n嗎??)
變數名稱.readable() 是否可讀取 回傳布林值
變數名稱.readline([size]) 讀取目前指標所在行中size長度的文字 size沒設定 預設讀取一整行 (包含換行符號\n)
變數名稱.readlines() 讀取所有行 (包含換行符號\n) 回傳list
變數名稱.next() 移動到下一行
變數名稱.seek(0) 將指標移至文件最前端
變數名稱.tell() 回傳目前檔案位置
變數名稱.writable() 是否可以寫入 回傳布林值 沒e
錯誤處理
示範:
def div(x,y):
try:
return x/y
except ZeroDivisionError:
print("除數不可為0")
except TypeError:
print("必須是變數形式")
try:
print(div(A,'1'))
except NameError:
print("使用變數必須有值")
實作帳號檔案管理:
def menu(): os.system("cls") print("帳號、密碼管理系統") print("-"*20) print("1. 新增帳號、密碼\n2. 顯示帳號、密碼\n3. 修 改 密 碼\n4. 刪除帳號、密碼\n0. 結 束 程 式") print("-"*20) |
def read_data(): if os.path.exists('password.txt'): with open('password.txt','r',encoding='UTF-8-sig')as f: filedata=f.read() if filedata !="": data=ast.literal_eval(filedata) return data else: return dict() else: open('password.txt','a+') return read_data() |
def input_data():#A while True: name= input("請輸入帳號(Enter==>停止輸入)") if name=="": break elif name in data: print("{}帳號已存在".format(name)) continue password=input("請輸入密碼:") data[name]=password with open("password.txt",'w',encoding='UTF-8-sig')as f: f.write(str(data)) print("{}已被儲存完畢".format(name)) |
def disp_data():#R print("帳號\t密碼") print("="*20) for key in data: print("{}\t{}".format(key,data[key])) input("按任意鍵返回主選單") |
def edit_data():#W while True: name= input("請輸入要修改的帳號(Enter==>停止輸入)") if name=="": break elif not name in data: print("{}帳號不存在".format(name)) continue print("原來密碼為:{}".format(name)) password=input("請輸入密碼:") data[name]=password with open("password.txt",'w',encoding='UTF-8-sig')as f: f.write(str(data)) print("密碼更改完畢,請按任意鍵返回主選單".format(name)) break |
def delete_data():#W while True: name= input("請輸入要刪除的帳號(Enter==>停止輸入)") if name=="": break elif not name in data: print("{}帳號不存在".format(name)) continue print("確認刪除{}的資料".format(name)) yn=input("(Y/N)?") if(yn=="Y" or yn=="y"): del data[name] with open("password.txt",'w',encoding='UTF-8-sig')as f: f.write(str(data)) print("已刪除完畢完畢,請按任意鍵返回主選單".format(name)) break |
import os,ast data=dict() data=read_data() while True: menu() choice=int(input("請輸入您的選擇:")) print() if choice==1: input_data() elif choice==2: disp_data() elif choice==3: edit_data() elif choice==4: delete_data() else: break print("-"*20) print("程式執行完畢!") |
---
jupyter notebook 其他語言
Markdown
A鍵 上方新增cell
B鍵 下方新增cell
DD鍵 刪除cell
選取 tab 縮排
選取 shift+tab 反縮排
#+空格+標題
###+空格+標題
越多井字號標題越小
---
三個減號以上 分隔線
*內文*
前後一個星號 斜體
**內文**
前後兩個星號 粗體
***內文***
前後三個星號 粗斜體
```
內文
```
強迫格式化
空四格
縮排
-+空格+標題
++空格+標題
減號或加號 製作無邊號清單
數字+.+空格+標題
數字加點 製作編號清單 (數字順序自動排序)
先清單才調整大小#
圖片可以直接複製貼上
Latex
$內文$
前後一個錢號 數學公式
$$內文$$
前後兩個錢號 單行置中數學公式
-
所以目錄到底是用 / 還是 \ 還是 // 還是 \\
= =