9-1.文件过滤。显示一个文件的所有行,忽略以井号(#)开头的行。这个字符被用做Python,Perl,Tcl,等大多数脚本文件的注释符号。附加题:处理不是第一个字符开头的注释。
f = open(filename, \'r\') allLines = f.readlines() for line in allLines: # print(line,) if line[0] != \'#\': print(line,) f.close()
9-2.文件访问。提示输入数字N和文件F,然后显示文件F的前N行。
filename = input(\'Enter the file name:\') N = int(input(\'Enter the number of rows:\')) f = open(filename, \'r\') allLines = f.readlines() i = 1 for line in allLines: print(line,) if i == N: break i = i + 1 f.close()
9-3.文件信息,提示输入一个文件名,然后显示这个文本文件的总行数。
filename = input(\'Enter the file name:\') f = open(filename, \'r\') allLines = f.readlines() print(len(allLines)) f.close()
9–4. 文件访问. 写一个逐页显示文本文件的 程序. 提示输入一个文件名, 每次显示文本文件的 25 行, 暂停并向用户提示"按任意键继续.", 按键后继续执行.
filename = input(\'Enter the file name:\') f = open(filename, \'r\') allLines = f.readlines() i = 0 for line in allLines: if i != 5: print(line,) else: ele = input(\'Press any key to continue\') i = 0 i = i + 1 f.close()
9-6.文件比较,写一个比较两个文本文件的程序,如果不同,给出第一个不同处的行号和列号。
def fileCompare(file1,file2): f1 = open(file1, \'r\') f2 = open(file2, \'r\') allLines1 = f1.readlines() allLines2 = f2.readlines() if len(allLines1) >= len(allLines2): biglen = len(allLines1) else: biglen = len(allLines2) for i in range(biglen): if allLines1[i] != allLines2[i]: row = i + 1 if len(allLines1[i]) >= len(allLines2[i]): biglen2 = len(allLines1[i]) else: biglen2 = len(allLines2[i]) for col in range(biglen2): if allLines1[i][col] != allLines2[i][col]: print(\'row:%d,col:%d\' %(row,col+1)) return None print(\'文件相同\') f1.close() f2.close()