Python课老师布置了几道实验习题,虽然是一次小实验,不过其中一道题犯过很多错,学习了很多知识点,有必要总结一下。
题目描述:
Python源文件改写。编写一个程序,读取一个Python源程序文件,将文件中所有除保留字外的小写字母换成大写字母,生成后的文件要能够被Python解释器正确执行。
习题源码:
import keyword
s=keyword.kwlist
#建立保留字列表
file_name = "F:\个人\Python\PY\Python实验6/t.txt"
f = open(file_name, "r")
ls=[]
for i in f.readlines():
i=i.split()
ls.append(i)
print(ls)
#建立一个以每行的所有单词为元素组成的一个列表组
f.close()
f = open(file_name, "w+")
for i in range(len(ls)):
if ls[i]:
for j in range(len(ls[i])):
x= ls[i][j]
if x not in s:
x=x.upper()
else:
x=x.lower()
if j == len(ls[i])-1:#判定是否遍历至每行的末尾
f.write(x+"\n")
else:
f.write(x+" ")
else:
f.write(" "+"\n")
f.close()
犯错知识点总结:
1.keyword.kwlist可以得到所有关键字元素,不需要单独列一个关键字的集合
2.文件默认路径是该Python文件所在路径。书写绝对路径的时候推荐字符串前面加r防止字符转义,或者使用'/'或者'\\',因为'\'是转义字符,单独使用的话编译器能无法正确解读,可能会把D:\\py\t.txt解读为'\t'而报错
3.当split()方法不带参数时,默认以空格分界
4.open()方法用于打开一个文件,第一个参数是文件路径和文件名,第二个参数是读写模式。