檔案與例外處理

      在〈檔案與例外處理〉中尚無留言

open(“file.txt”,”r”) 注意事項

a : append附加於最後,原檔存在時,並不會刪除原檔
w : 可寫不可讀,原檔存在時,會刪除原檔案
r : 可讀不可寫
r+ : 可讀可寫,原檔不會刪除,但寫入時,會從第一個字開始覆蓋。
w+ : 可讀可寫,原檔存在時,會先被刪除,再建立新的檔。

Q-001

01 def read_file(file):
02     line=None
03     if os.path.isfile(file):
04         data=open(file, 'r')
05         for line in data:
06             print(line)
當你執行該程式時, 你會收到03行以上的錯誤. 導致錯誤的原因是什麼
A. path方法並不存在 os 物件中
B. isfile方法不接受一個參數
C. path物件不存在isfile方法
D. 你需要導入 os 函數庫
Ans: D

Q-002

你正在設計一個Python程式來讀取學生資料的檔案, 文件中包含了學生的班級, 座號和姓名, 下面顯示的是檔案中的資料範例
'1A', 1, 'David
'1A', 2, 'Mary'
程式碼必須符合以下的需求:
    檔案的每一行都必須讀取和列印
    如果遇到空行, 則必須忽略
    在完成所有行的讀取後, 必須關閉檔案

01 students = open("students.txt", 'r')
02 eof = False
03 while eof == False:
04     line=students.readline()
05
06
07             print(line.strip())
08    else:
09        print("檔案結束")
10        eof=True
11 students.close()

在 05 及 06 行應該編寫那些程式碼
A. 05 if line !='':
   06     if line != "\n":
B. 05 if line != '\n':
   06     if line != None:
C. 05 if line != '\n':
   06     if line !="":
D. 05 if line !='':
   06     if line !="":

Ans: A

Q-003

Northwind Electric Cars 公司需要使用Python程式碼來幫忙更新他們的檔案系統. 你必需創建一個簡單的檔案操作程式來執行以下的操作
檢查檔案是否存在
如果該檔案存在, 則顯示其內容
如果該檔案不存在, 請使用指定的名稱創建新檔
將"清單未尾" 一詞追加到檔案最後

import os
if (1)
    file = open('myFile.txt')
    (2)
    file.close()
file = (3)
(4)("清單未尾")
file.close()

Ans:(1) : os.path.isfile('myFile.txt'):
    (2) : print(file.read())
    (3) : open('myFile.txt','a')
    (4) : file.write

Q-004

import sys
try:
    file_in = open("in.txt", 'r')
    file_out = open("out.txt", 'w+')
except IOError:
    print('無法開啟', file_name)
else:
    i=1
    for line in file_in:
        print(line.strip())
        file_out.write("line "+str(i)+": "+line)
        i=i+1
    file_in.close()
    file_out.close()
out.txt檔不存在. 你執行程式碼, 這個程式碼將執行而不出錯。
再檢查帶底線的文字敘述, 如果語法正確, 請選擇 "不需要改變"。如果語法不正確, 請選擇語法正確的答案選項. 
A. 不需要改變
B. 程式碼執行, 但產生邏輯錯誤
C. 程式碼將產生執行階段錯誤
D. 程式碼將產生語法錯誤. 
Ans: D (file_name 變數沒有定義), 請注意一下, 是語法錯誤, 不是執行階段錯誤

Q-005

你正在創建一個接受使用者輸入的程式. 這個程式必須將輸入值轉換為整數. 如果輸入值不能轉換為整數, 程式碼必須正確處理該錯誤。
你要如何完成程式碥?
while True:
    (1)
        x = int(input("請輸入一個數字: "))
        break;
    (2) valueError:
        print("這不是一個有效的數字, 再試一次...")
Ans: (1) try:
     (2) except

Q-006

你正在設計一個檔案的函數. 如果檔案不存在, 則返回 "檔案不存在". 如果該檔案存在,則該函數返回第一行的內容. 
import os
def get_file_message(file):
你應該如何安排這些程式碼片最的順序來完成函數. 
A. with open(file, 'r') as file:
B. return "檔案不存在"
C. return file.readline()
D. if os.path.isfile(file):
E. else:
Ans : D A C E B

正確的代碼如下
def get_file_message(file):
    if os.path.isfile(file):
        with open(file, 'r') as file:
            return file.readline()
    else:
        return "檔案不存在"

Q-007

你設計一個Python應用程式, 需要將資料讀寫到文字檔中. 如果檔案不存在, 則必須新增它. 
如果檔案已有內容, 將文字加到最後
你應該使用那個程式碼
A. open("file_data", "a")
B. open("file_data", "w")
C. open("file_data", "r+")
D. open("file_data", "r")

Ans: A

Q-008

你設計一個Python應用程式, 需要將資料讀寫到文字檔中. 如果檔案不存在, 則必須新增它. 
如果已有此檔案, 則刪除內容, 重新寫入
你應該使用那個程式碼
A. open("file_data", "a")
B. open("file_data", "w")
C. open("file_data", "r+")
D. open("file_data", "r")

Ans: B

Q-009

在下列的語法敘述中, 如果正確就選擇Yes, 否則請選擇No
A. 在try 語法中可以有不只一個except子句
B. 在try 語法中可以不加except 子句
C. 在try 語法中可以有一個finally子句與except 子句
D. 在try 語法中可以有不只一個finally子句
Ans: A B C 為Yes, D 為 No

Q-010

你製作一個程式詢問使用者家中有多少個小孩, 使用者必須輸入整數, 如果輸入值不是整數, 程式碼必須指出並要求重新輸入. 
你要如何完成程式碼
while True:
    (1)
        x = int(input("請問您有幾個小孩 : "))
        break
    (2) ValueError:
        print("請確認您蠕入的是一個整數, 請再試一次...")
(1)A. try:   B. else:   C. except:   D. raise:    E. finally:
(2)A. try:   B. else:   C. except:   D. raise:    E. finally:

Ans: A C

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *