Python原始檔改寫

2021-08-20 20:27:48 字數 1097 閱讀 5157

## 編寫乙個程式,讀取乙個python源程式檔案,將檔案中所有除保留字之外的小寫字母換成字母,並且生成檔案要能夠被python直譯器正確執行。 ##
以下給出程式:

# -*- coding :utf-8 -*-

import keyword

f = open('test.py')

content = f.read()

f.close()

table = ['range','print','list','set','keyword','kwlist','end']

fs = '' #用於儲存改變後的內容

temp = '' #臨時字串,用於判斷和處理

for ch in content:

if ch.isalpha(): #如果是字母,則加到temp後面,用於後面處理

temp +=ch

else: #如果不是字母,表示乙個連續的字母構成的字串結束,此時ch非字母

if (not keyword.iskeyword(temp)) and (temp not in table): #如果不是保留字和內建方法,將其變成大寫

temp = temp.upper()

fs+=temp #將temp新增到fs

fs+=ch #新增 非字母ch 注意不能和 fs+=temp 位置顛倒

temp = '' #清空臨時字串,用於下次使用

f = open('test','w')

f.write(fs)

f.close()

這裡我們首先需要匯入keyword模組,因為根據題目的意思,我們不能改寫保留字母,使用kwlist就可以列舉出所有的保留字母(注意返回的是乙個list),同時也可以用iskeyword判斷是不是乙個保留字

注意:table 列表是除了保留字之外的關鍵字,如果要使用某些模組的某些方法,就應該把相應的關鍵字寫到table裡,不然改變後的源程式就不能被python直譯器執行。

測試如下:

初始的程式及結果:

改變後的程式及結果:

Python原始檔的字元編碼

預設情況下,python 原始碼檔案以 utf 8 編碼方式處理。在這種編碼方式中,世界上大多數語言的字元都可以同時用於字串字面值 變數或函式名稱以及注釋中 儘管標準庫中只用常規的 ascii 字元作為變數或函式名,而且任何可移植的 都應該遵守此約定。要正確顯示這些字元,你的編輯器必須能識別 utf...

mysql 原始檔安裝 Mysql原始檔安裝

mysql原始檔安裝 1 安裝準備 a 刪除linux自帶的mysql資料庫,命令為 root localhost rpm qa grep mysql root localhost rpm e nodpes mysql 這裡的 號貌似不能用需要完整的安裝檔名 b 刪除已存在的mysql使用者及使用者...

歸檔原始檔

歸檔原始檔 1.doxygen 是乙個程式的檔案產生工具,可將程式中的特定批註轉換成為說明檔案。通常我們在寫程式時,或多或少都會寫上批註,但是對於其它人而言,要直接探索程式裡的批註,與打撈鐵達尼號同樣的辛苦。大部分有用的批註都是屬於針對函式 型別等等的說明。所以,如果能依據程式本身的結構,將批註經過...