Python源文件改寫

Python源文件改寫:

## 編寫一個程序,讀取一個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解釋器執行。

測試如下:
初始的程序及結果:

最初程序

執行結果

改變後的程序及結果:
改後程序

執行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章