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解释器执行。

测试如下:
初始的程序及结果:

最初程序

执行结果

改变后的程序及结果:
改后程序

执行结果

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