第八章
一. 單選題(共51題,51分)
- 關於Python對文件的處理,以下選項中描述錯誤的是( )
- A. 當文件以文本方式打開時,讀寫按照字節流方式
- B. Python能夠以文本和二進制兩種方式處理文件
- C. Python通過解釋器內置的open()函數打開一個文件
- D. 文件使用結束后要用close()方法關閉,釋放文件的使用授權
答案:A
- 以下選項中,不是Python對文件的讀操作方法的是( )
- A. read
- B. readline
- C. readtext
- D. readlines
答案:C
- 以下選項中,不是Python對文件的打開模式的是( )
- A. 'w'
- B. 'r'
- C. '+'
- D. 'c'
答案:D
- 關於數據組織的維度,以下選項中描述錯誤的是( )
- A. 數據組織存在維度,字典類型用於表示一維和二維數據
- B. 高維數據由鍵值對類型的數據構成,采用對象方式組織
- C. 一維數據采用線性方式組織,對應於數學中的數組和集合等概念
- D. 二維數據采用表格方式組織,對應於數學中的矩陣
答案:A
- 關於Python文件打開模式的描述,以下選項中錯誤的是( )
- A. 追加寫模式a
- B. 只讀模式r
- C. 覆蓋寫模式w
- D. 創建寫模式n
答案:D
- 關於CSV文件的描述,以下選項中錯誤的是( )
- A. *CSV文件的每一行是一維數據,可以使用Python中的列表類型表示
- B. 整個CSV文件是一個二維數據
- C. *CSV文件格式是一種通用的、相對簡單的文件格式,應用於程序之間轉移表格數據
- D. *CSV文件通過多種編碼表示字符
答案:D
- 關於Python文件的 '+' 打開模式,以下選項中描述正確的是( )
- A. 與r/w/a/x一同使用,在原功能基礎上增加同時讀寫功能
- B. 讀模式
- C. 追加寫模式
- D. 覆蓋寫模式
答案:A
- 表格類型數據的組織維度是( )
- A. 高維數據
- B. 一維數據
- C. 多維數據
- D. 二維數據
答案:D
- “鍵值對”類型數據的組織維度是( )
- A. 高維數據
- B. 二維數據
- C. 多維數據
- D. 一維數據
答案:A
- 給定列表ls = {1, 2, 3, "1", "2", "3"},其元素包含兩種數據類型,則ls的數據組織維度是( )
- A. 多維數據
- B. 二維數據
- C. 高維數據
- D. 一維數據
答案:D
- 給定字典d = {1:"1", 2:"2", 3: "3"},其元素包含兩種數據類型,則字典d的數據組織維度是( )
- A. 二維數據
- B. 多維數據
- C. 高維數據
- D. 一維數據
答案:C
- 以下選項中,不是Python中文件操作的相關函數是( )
- A. open()
- B. read()
- C. load()
- D. write()
答案:C
- 以下選項中,不是Python中文件操作的相關函數是( )
- A. write()
- B. open()
- C. readlines()
- D. writeline()
答案:D
- 以下選項中,不是Python文件處理.seek()方法的參數是( )
- A. 0
- B. 1
- C. 2
- D. -1
答案:D
- 以下選項中,不是Python文件打開的合法模式組合是( )
- A. "r"
- B. "a"
- C. "+"
- D. "w"
答案:C
- 以下選項中,不是Python文件打開的合法模式組合是( )
- A. "a+"
- B. "t+"
- C. "r+"
- D. "w+"
答案:B
- 以下選項中,不是Python文件打開的合法模式組合是( )
- A. "br+"
- B. "wr"
- C. ""
- D. "bw"
答案:B
- 以下選項中,不是Python文件二進制打開模式的合法組合是( )
- A. "b"
- B. "x+"
- C. "bx"
- D. "bw"
答案:B
- 關於一維數據存儲格式問題,以下選項中描述錯誤的是( )
- A. 一維數據可以采用CSV格式存儲
- B. 一維數據可以采用直接相連形成字符串方式存儲
- C. 一維數據可以采用分號分隔方式存儲
- D. 一維數據可以采用特殊符號@分隔方式存儲
答案:B
- 關於二維數據CSV存儲問題,以下選項中描述錯誤的是( )
- A. CSV文件的每一行表示一個具體的一維數據
- B. CSV文件的每行采用逗號分隔多個元素
- C. CSV文件不是存儲二維數據的唯一方式
- D. CSV文件不能包含二維數據的表頭信息
答案:D
- 以下選項中,對CSV格式的描述正確的是( )
- A. CSV文件以英文特殊符號分隔元素
- B. CSV文件以英文逗號分隔元素
- C. CSV文件以英文空格分隔元素
- D. CSV文件以英文分號分隔元素
答案:B
- 關於文件關閉的.close()方法,以下選項中描述正確的是( )
- A. 文件處理遵循嚴格的“打開—操作—關閉”模式
- B. 文件處理后可以不用.close()方法關閉文件,程序退出時會默認關閉
- C. 文件處理結束之后,一定要用.close()方法關閉文件
- D. 如果文件是只讀方式打開,僅在這種情況下可以不用.close()方法關閉文件
答案:B
- 表達式",".join(ls)中ls是列表類型,以下選項中對其功能的描述正確的是( )
- A. 將逗號字符串增加到列表ls中
- B. 在列表ls每個元素后增加一個逗號
- C. 將列表所有元素連接成一個字符串,每個元素后增加一個逗號
- D. 將列表所有元素連接成一個字符串,元素之間增加一個逗號
答案:D
- 以下文件操作方法中,不能從CSV格式文件中讀取數據的是( )
- A. readlines
- B. readline
- C. seek
- D. read
答案:C
- 以下文件操作方法中,不能向CSV格式文件寫入數據的是( )
- A. seek和write
- B. writelines
- C. write
- D. writeline
答案:D
- 兩次調用文件的write方法,以下選項中描述正確的是( )
- A. 連續寫入的數據之間默認采用逗號分隔
- B. 連續寫入的數據之間無分隔符
- C. 連續寫入的數據之間默認采用空格分隔
- D. 連續寫入的數據之間默認采用換行分隔
答案:B
- 表達式writelines(lines)能夠將一個元素是字符串的列表lines寫入文件,以下選項中描述正確的是( )
- A. 列表lines中各元素之間無分隔符
- B. 列表lines中各元素之間默認采用逗號分隔
- C. 列表lines中各元素之間默認采用換行分隔
- D. 列表lines中各元素之間默認采用空格分隔
答案:A
- 關於open()函數的文件名,以下選項中描述錯誤的是( )
- A. 文件名不能是一個目錄
- B. 文件名對應的文件可以不存在,打開時不會報錯
- C. 文件名可以是相對路徑
- D. 文件名可以是絕對路徑
答案:B
- Python語句:f = open(),以下選項中對f的描述錯誤的是( )
- A. 將f當作文件對象,f.read()可以讀入文件全部信息
- B. 表達式print(f)執行將報錯
- C. *f是一個Python內部變量類型
- D. *f是文件句柄,用來在程序中表達文件
答案:B
- 使用open()打開一個Windows操作系統D盤下的文件,以下選項中對路徑的表示錯誤的是( )
- A. D:\PythonTest\a.txt
- B. D://PythonTest//a.txt
- C. D:\PythonTest\a.txt
- D. D:/PythonTest/a.txt
答案:A
- 當前程序路徑在D:\PythonTest目錄中,使用open()打開D盤根目錄下文件,以下選項中對路徑的表示錯誤的是( )
- A. D:\a.txt
- B. D:\a.txt
- C. ../a.txt
- D. ..//a.txt
答案:B
- 以下選項對應的方法可以用於從CSV文件中解析一二維數據的是( )
- A. split()
- B. format()
- C. exists()
- D. join()
答案:A
- 以下選項對應的方法可以用於向CSV文件寫入一二維數據的是( )
- A. split()
- B. strip()
- C. exists()
- D. join()
答案:D
- 以下選項對應的方法可以輔助用於從CSV文件中解析二維數據的是( )
- A. count()
- B. strip()
- C. format()
- D. center()
答案:B
- 關於CSV文件的擴展名,以下選項中描述正確的是( )
- A. 可以為任意擴展名
- B. 擴展名只能是.txt
- C. 擴展名只能是.csv
- D. 擴展名只能是.dat
答案:A
- 關於文件的打開方式,以下選項中描述正確的是( )
- A. 文件只能選擇二進制或文本方式打開
- B. 所有文件都可能以文本方式打開
- C. 文本文件只能以文本方式打開
- D. 所有文件都可能以二進制方式打開
答案:D
- 對於特別大的數據文件,以下選項中描述正確的是( )
- A. 選擇內存大的計算機,一次性讀入再進行操作
- B. *Python可以處理特別大的文件,不用特別關心
- C. 使用for .. in..循環,分行讀入,逐行處理
- D. Python無法處理特別大的數據文件
答案:C
- 關於高維數據,以下選項中描述錯誤的是( )
- A. 高維數據只能表達鍵值對數據
- B. “鍵值對”是高維數據的主要特征
- C. 高維數據可用於表達一二維數據
- D. 高維數據用來表達索引和數據之間的關系
答案:A
- 當打開一個不存在的文件時,以下選項中描述正確的是( )
- A. 文件不存在則創建文件
- B. 一定會報錯
- C. 根據打開類型不同,可能不報錯
- D. 不存在文件無法被打開
答案:C
- 關於數據維度,以下選項中描述錯誤的是( )
- A. 一維數據可能存在順序,也可以沒有順序
- B. 數據維度包括一二維、多維和高維數據
- C. 所有數據都能用維度方式表示
- D. 圖像由於存在長寬,所以圖像數據是二維數據
答案:D
- 以下選項中不是文件操作函數或方法的是( )
- A. load
- B. read
- C. writelines
- D. readlines
答案:A
- 對於無序的一維數據,以下選項中描述錯誤的是( )
- A. 無序一維數據可以采用列表類型來表達
- B. 無序一維數據可以采用字典類型來表達
- C. 無序一維數據可以采用集合類型來表達
- D. 無序一維數據無法利用Python語言有效表達
答案:D
- 調用open函數可以打開指定文件,在open()函數中訪問模式參數使用( )表示只讀。
- A. ’ a’
- B. ’w+’
- C. ’r’
- D. ’w’
答案:C
- 下列哪項不是Python中對文件的讀取操作( )
- A. read
- B. readall
- C. readlines
- D. readline
答案:B
- 在讀寫文件之前,必須通過以下哪個方法創建文件對象( )
- A. .create
- B. folder
- C. File
- D. open
答案:D
- 以下描述中錯誤的是( )項?
- A. .字符串的格式化,'{:.2f}'.format(math.pi) 與 '%.2f' % math.pi 在運算結果上相同。
- B. Python中的同一種序列互相之間可以進行比較,按照字典序進行排序,例如 (1, 2, 3, 4) < (1, 2, 4) 的運算結果是True。
- C. 打開一個文本文件,f = open('test.txt', 'r+'); 則 f.seek(5) 表示在打開的文件里尋找數字5。
- D. 打開一個文本文件,在對其進行讀取,f = open('test.txt', 'r+'); f.read() ;read函數內不帶參數是讀取整個文本文件內容並返回
答案:C
- 以下關於 Python 文件的描述,錯誤的是( )
- A. open 函數的參數處理模式’b’表示以二進制數據處理文件
- B. open 函數的參數處理模式’+’表示可以對文件進行讀和寫操作
- C. readline 函數表示讀取文件的下一行,返回一個字符串
- D. open 函數的參數處理模式’a’表示追加方式打開文件,刪除已有內容
答案:D
- 給出如下代碼: fname = input("請輸入要打開的文件: ") fi = open(fname, "r") for line in fi.readlines(): print(line) fi.close() 以下選項中描述錯誤的是( )
- A. 通過fi.readlines()方法將文件的全部內容讀入一個字典fi
- B. 用戶輸入文件路徑,以文本文件方式讀入文件內容並逐行打印
- C. 通過fi.readlines()方法將文件的全部內容讀入一個列表fi
- D. 上述代碼中fi.readlines()可以優化為fi
答案:A
- 執行如下代碼: fname = input("請輸入要寫入的文件: ") fo = open(fname, "w+") ls = ["清明時節雨紛紛,","路上行人欲斷魂,","借問酒家何處有?","牧童遙指杏花村。"] fo.writelines(ls) fo.seek(0) for line in fo: print(line) fo.close() 以下選項中描述錯誤的是( )
- A. *fo.seek(0)這行代碼可以省略,不影響輸出效果
- B. *fo.writelines(ls)將元素全為字符串的ls列表寫入文件
- C. 代碼主要功能為向文件寫入一個列表類型,並打印輸出結果
- D. 執行代碼時,從鍵盤輸入“清明.txt”,則清明.txt被創建
答案:A
- 關於下面代碼中的變量x,以下選項中描述正確的是( ) fo = open(fname, "r") for x in fo: print(x) fo.close()
- A. 變量x表示文件中的一個字符
- B. 變量x表示文件中的全體字符
- C. 變量x表示文件中的一行字符
- D. 變量x表示文件中的一組字符
答案:C
- 以下程序的輸出結果是( )
fo = open("text.csv",'w')
x =[[90,87,93],[87,90,89],[78,98,97]]
b = []
for a in x:
for aa in a:
b.append(str(aa))
fo. write(",".join(b))
fo.close()
fo = open("text.csv",'r')
print(fo.read())
- A. [90,87,93,87,90,89,78,98,97]
- B. (90,87,93 87,90,89 78,98,97)
- C. [[90,87,93], [87,90,89], [78,98,97]]
- D. 90,87,93,87,90,89,78,98,97
答案:D
二. 填空題(共9題,9分)
- 對文件進行寫入操作之后,________方法用來在不關閉文件對象的情況下將緩沖區內容寫入文件。
- 答案: flush()
- Python 內置函數________用來打開或創建文件並返回文件對象。
- 答案: open()
- 使用上下文管理關鍵字________可以自動管理文件對象, 不論何種原因結束該關鍵字中的語句塊,都能保證文件被正確關閉。
- 答案: with
- Python標准庫os 中用來列出指定文件夾中的文件和子文件夾列表的方法是________。
- 答案: listdir()
- Python標准庫 os.path中用來判斷指定文件是否存在的方法是________。
- 答案: exists()
- Python標准庫 os.path 中用來判斷指定路徑是否為文件的方法是________。
- 答案: isfile()
- Python標准庫 os.path中用來判斷指定路徑是否為文件夾的方法是________。
- 答案: isdir()
- Python標准庫 os.path 中用來分割指定路徑中的文件擴展名的方法是________。
- 答案: splitext()
- Python擴展庫________支持Excel2007或更高版本文件的讀寫操作 。
- 答案: openpyxl
三. 判斷題(共38題,40分)
- 擴展庫os中的方法remove()可以刪除帶有只讀屬性的文件。
- A. 對
- B. 錯
答案:錯
- 使用內置函數open()且以”w”模式打開的文件,文件指針默認指向文件尾。
- A. 對
- B. 錯
答案:錯
- 使用內置函數open()打開文件時,只要文件路徑正確就總是可以正確打開的。
- A. 對
- B. 錯
答案:錯
- 使用print()函數無法將信息寫入文件。
- A. 對
- B. 錯
答案:錯
- 對文件進行讀寫操作之后必須顯式關閉文件以確保所有內容都得到保存。
- A. 對
- B. 錯
答案:對
- Python標准庫os中的方法startfile()可以啟動任何已關聯應用程序的文件,並自動調用關聯的程序。
- A. 對
- B. 錯
答案:對
- Python標准庫os中的方法startfile()可以用來打開外部程序或文件,系統會自動關聯相應的程序來打開或執行指定的文件。
- A. 對
- B. 錯
答案:對
- 假設os模塊已導入,那么列表推導式 [filename for filename in os.listdir('C:\Windows') if filename.endswith('.exe')] 的作用是列出C:\Windows文件夾中所有擴展名為.exe的文件。
- A. 對
- B. 錯
答案:對
- 二進制文件不能使用記事本程序打開。
- A. 對
- B. 錯
答案:錯
- 使用普通文本編輯器軟件也可以正常查看二進制文件的內容。
- A. 對
- B. 錯
答案:錯
- 二進制文件也可以使用記事本或其他文本編輯器打開,但是一般來說無法正常查看其中的內容。
- A. 對
- B. 錯
答案:對
- Python標准庫os中的方法isfile()可以用來測試給定的路徑是否為文件。
- A. 對
- B. 錯
答案:對
- Python標准庫os中的方法exists()可以用來測試給定路徑的文件是否存在。
- A. 對
- B. 錯
答案:對
- Python標准庫os中的方法isdir()可以用來測試給定的路徑是否為文件夾。
- A. 對
- B. 錯
答案:對
- Python標准庫os中的方法listdir()返回包含指定路徑中所有文件和文件夾名稱的列表。
- A. 對
- B. 錯
答案:對
- Python擴展庫xlwt支持對Excel 2003或更低版本的Excel文件進行寫操作。
- A. 對
- B. 錯
答案:對
- Python擴展庫xlrd支持對Excel 2003或更低版本的Excel文件進行讀操作。
- A. 對
- B. 錯
答案:對
- 標准庫os的rename()方法可以實現文件移動操作。
- A. 對
- B. 錯
答案:對
- 標准庫os的listdir()方法默認只能列出指定文件夾中當前層級的文件和文件夾列表,而不能列出其子文件夾中的文件。
- A. 對
- B. 錯
答案:對
- 文件對象的tell()方法用來返回文件指針的當前位置。
- A. 對
- B. 錯
答案:對
- 以寫模式打開的文件無法進讀操作。
- A. 對
- B. 錯
答案:對
- 假設已成功導入os和sys標准庫,那么表達式os.path.dirname(sys.executable)的值為Python安裝目錄。
- A. 對
- B. 錯
答案:對
- 以讀模式打開文件時,文件指針指向文件開始處。
- A. 對
- B. 錯
答案:對
- 以追加模式打開文件時,文件指針指向文件尾。
- A. 對
- B. 錯
答案:對
- 二進制文件也可以使用記事本程序打開,只是無法正確閱讀和理解其中的內容。
- A. 對
- B. 錯
答案:對
- 文本文件是可以迭代的,可以使用for line in fp類似的語句遍歷文件對象fp中的每一行。
- A. 對
- B. 錯
答案:對
- Python的主程序文件屬於二進制文件。
- A. 對
- B. 錯
答案:對
- 對字符串信息進行編碼以后,必須使用同樣的或者兼容的編碼格式進行解碼才能還原本來的信息。
- A. 對
- B. 錯
答案:對
- 使用pickle進行序列化得到的二進制文件使用struct也可以正確地進行反序列化。
- A. 對
- B. 錯
答案:錯
- 已知當前文件夾中有一個文件具有只讀屬性,假設標准庫os已正確導入,那么可以通過語句os.chmod(‘readme.txt’, 0o777)來刪除該文件的只讀屬性。
- A. 對
- B. 錯
答案:對
- Python標准庫os的函數remove()不能刪除具有只讀屬性的文件。
- A. 對
- B. 錯
答案:對
- fi=fopen("t.txt","r+") 執行后只能對"t.txt"文件進行讀操作
- A. 對
- B. 錯
答案:錯
- 二進制文件也可以使用記事本或其他文本編輯器打開,但是一般來說無法正常查看其中的內容
- A. 對
- B. 錯
答案:對
- 使用Python內置的open函數打開某個文件的時候,如果該文件不存在,則可能產生異常。所以一定要使用try except對其進行處理
- A. 對
- B. 錯
答案:錯
- open("test.txt", 'r+')是以只讀模式打開test.txt文件
- A. 對
- B. 錯
答案:錯
- 文本文件是可以迭代的,可以使用for line in fp類似的語句遍歷文件對象fp中的每一行
- A. 對
- B. 錯
答案:對
- Python內置的open函數,打開文件的時候可能會產生異常
- A. 對
- B. 錯
答案:對
- 以讀模式打開文件時,文件指針指向文件開始處
- A. 對
- B. 錯
答案:對