主要目的,熟悉檔案清單的增、删、改操作……
<code># python 3.6 檔案打開操作練習</code>
<code># date:2017-12-26</code>
<code># _*_ coding:utf-8 _*_</code>
<code>import</code> <code>os,sys</code>
<code>def</code> <code>find():</code>
<code> </code><code>find_name </code><code>=</code> <code>input</code><code>(</code><code>"請輸入要查詢的員工姓名:"</code><code>).strip().upper()</code>
<code> </code><code>flag</code><code>=</code><code>False</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"info.txt"</code><code>,</code><code>'r'</code><code>,encoding</code><code>=</code><code>'utf-8'</code><code>) as f1:</code>
<code> </code><code>for</code> <code>line </code><code>in</code> <code>f1:</code>
<code> </code><code>if</code> <code>line.split()[</code><code>0</code><code>]</code><code>=</code><code>=</code><code>find_name:</code>
<code> </code><code>flag</code><code>=</code><code>True</code>
<code> </code><code>print</code><code>(</code><code>"員工姓名:"</code><code>,find_name,</code><code>"\t工資:"</code><code>,line.split()[</code><code>1</code><code>])</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>continue</code>
<code> </code><code>if</code> <code>not</code> <code>flag:</code>
<code> </code><code>print</code><code>(</code><code>"未找到員工資訊:\033[31;1m{_name}\033[1m"</code><code>.</code><code>format</code><code>(_name</code><code>=</code><code>find_name))</code>
<code>def</code> <code>modify():</code>
<code> </code><code>flag </code><code>=</code> <code>False</code>
<code> </code><code>mod_info1</code><code>=</code><code>input</code><code>(</code><code>"請輸入要修改的員工姓名:"</code><code>).strip().upper()</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"info.txt"</code><code>, </code><code>'r'</code><code>, encoding</code><code>=</code><code>'utf-8'</code><code>) as f1 , \</code>
<code> </code><code>open</code><code>(</code><code>"info_new"</code><code>, </code><code>'w'</code><code>, encoding</code><code>=</code><code>'utf-8'</code><code>) as f2:</code>
<code> </code><code>if</code> <code>mod_info1 </code><code>=</code><code>=</code><code>line.split()[</code><code>0</code><code>]:</code>
<code> </code><code>mod_info2 </code><code>=</code> <code>input</code><code>(</code><code>"請輸入修改後的工資:"</code><code>).strip()</code>
<code> </code><code>if</code> <code>not</code> <code>mod_info2.isdigit(): </code><code>#判斷輸入是否為數字</code>
<code> </code><code>print</code><code>(</code><code>"請輸入一個數字!!"</code><code>)</code>
<code> </code><code>sys.exit() </code><code>#需等待完善優化,下同</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>f2.write(mod_info1</code><code>+</code><code>'\t'</code><code>+</code><code>mod_info2</code><code>+</code><code>'\n'</code><code>)</code>
<code> </code><code>flag </code><code>=</code> <code>True</code>
<code> </code><code>f2.write(line)</code>
<code> </code><code>if</code> <code>os.path.exists(</code><code>'info_bak.txt'</code><code>):os.remove(</code><code>"info_bak.txt"</code><code>) </code><code>#如果存在則删除</code>
<code> </code><code>os.rename(</code><code>"info.txt"</code><code>,</code><code>"info_bak.txt"</code><code>)</code>
<code> </code><code>os.rename(</code><code>"info_new"</code><code>,</code><code>"info.txt"</code><code>)</code>
<code> </code><code>if</code> <code>flag:</code>
<code> </code><code>print</code><code>(</code><code>"修改成功"</code><code>)</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>print</code><code>(</code><code>"未找到員工資訊:\033[31;1m{_name}\033[1m"</code><code>.</code><code>format</code><code>(_name</code><code>=</code><code>mod_info1))</code>
<code>def</code> <code>add():</code>
<code> </code><code>add_info1 </code><code>=</code> <code>input</code><code>(</code><code>"請輸入要增加的員工姓名:"</code><code>).strip().upper()</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"info.txt"</code><code>, </code><code>'r'</code><code>, encoding</code><code>=</code><code>'utf-8'</code><code>) as f1 :</code>
<code> </code><code>if</code> <code>add_info1 </code><code>=</code><code>=</code> <code>line.split()[</code><code>0</code><code>]:</code>
<code> </code><code>flag </code><code>=</code> <code>True</code>
<code> </code><code>print</code><code>(</code><code>"員工\033[31;1m{_name}\033[1m資訊已存在"</code><code>.</code><code>format</code><code>(_name</code><code>=</code><code>add_info1))</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"info.txt"</code><code>, </code><code>'a'</code><code>, encoding</code><code>=</code><code>'utf-8'</code><code>) as f2 :</code>
<code> </code><code>add_info2 </code><code>=</code> <code>input</code><code>(</code><code>"請輸入工資:"</code><code>).strip()</code>
<code> </code><code>if</code> <code>not</code> <code>add_info2.isdigit(): </code><code># 判斷輸入是否為數字</code>
<code> </code><code>print</code><code>(</code><code>"請輸入一個數字!!"</code><code>)</code>
<code> </code><code>sys.exit()</code>
<code> </code><code>f2.write(add_info1 </code><code>+</code> <code>'\t'</code> <code>+</code> <code>add_info2 </code><code>+</code> <code>'\n'</code><code>)</code>
<code> </code><code>print</code><code>(</code><code>"增加成功!!"</code><code>)</code>
<code>def</code> <code>dele():</code>
<code> </code><code>del_info1 </code><code>=</code> <code>input</code><code>(</code><code>"請輸入要删除的員工姓名:"</code><code>).strip().upper()</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"info.txt"</code><code>,</code><code>'r'</code><code>,encoding</code><code>=</code><code>'utf-8'</code><code>) as f1 ,\</code>
<code> </code><code>open</code><code>(</code><code>'info_new'</code><code>,</code><code>'w'</code><code>,encoding</code><code>=</code><code>'utf-8'</code><code>) as f2:</code>
<code> </code><code>if</code> <code>line.split()[</code><code>0</code><code>] </code><code>=</code><code>=</code> <code>del_info1:</code>
<code> </code><code>f2.write(line)</code>
<code> </code><code>print</code><code>(</code><code>"删除成功!!"</code><code>)</code>
<code> </code><code>print</code><code>(</code><code>"未找到員工資訊:\033[31;1m{_name}\033[1m"</code><code>.</code><code>format</code><code>(_name</code><code>=</code><code>del_info1))</code>
<code>def</code> <code>main():</code>
<code> </code><code>menu</code><code>=</code><code>{</code>
<code> </code><code>'1'</code><code>:find,</code>
<code> </code><code>'2'</code><code>:modify,</code>
<code> </code><code>'3'</code><code>:add,</code>
<code> </code><code>'4'</code><code>:dele,</code>
<code> </code><code>'5'</code><code>:exit</code>
<code> </code><code>}</code>
<code> </code><code>while</code> <code>True</code><code>:</code>
<code> </code><code>print</code><code>(</code><code>"""</code>
<code> </code><code>請選擇:</code>
<code> </code><code>1,查詢員工資訊</code>
<code> </code><code>2,修改員工資訊</code>
<code> </code><code>3,增加員工資訊</code>
<code> </code><code>4,删除員工資訊</code>
<code> </code><code>5,退出系統</code>
<code> </code><code>"""</code> <code>)</code>
<code> </code><code>choice</code><code>=</code><code>input</code><code>(</code><code>'>>>>'</code><code>).strip()</code>
<code> </code><code>if</code> <code>choice </code><code>in</code> <code>menu:</code>
<code> </code><code>menu[choice]()</code>
<code>if</code> <code>__name__</code><code>=</code><code>=</code><code>"__main__"</code><code>:</code>
<code> </code><code>main()</code>
<code></code>
本文轉自pimg200551CTO部落格,原文連結:http://blog.51cto.com/pimg2005/2054761 ,如需轉載請自行聯系原作者