|
楼主 |
发表于 2018-9-4 15:04:24
|
显示全部楼层
29动动手
这一讲是我做习题以来最崩溃的一次
动动手0
- #屏幕显示输入文件名
- file_name = input('请输入文件名:')
- while True:
- #以xw打开一个可写入文件
- try:
- f = open(file_name+'.txt','x')
- break
- #如果报错,则重新输入文件名
- except:
- file_name = input('文件已存在,请重新输入文件名:')
- #屏幕显示输入内容
- print('请输入内容【单独输入‘:W’保存退出】:')
- temp = input()
- #while循环输入,当输入为:w的时候打破循环,然后关闭文件
- while temp != ':w' and temp != ':W' and temp!=':w' and temp != ':W':
- f.write(temp+'\n')
- temp = input()
- f.close()
复制代码
动动手1
- #获取第一个文件名
- file_name1 = input('请输入一个需要比较的文件名:')
- #获取第二个文件名
- file_name2 = input('请输入另一个需要比较的文件名:')
- f1 =open(file_name1,'r')
- f2 =open(file_name2,'r')
- differences =[]
- count_lines = 0
- #逐行判断是否有不同
- file1 = list(f1)
- file2 = list(f2)
- for i in range(len(file1)):
- if file1[i] != file2[i]:
- count_lines +=1
- differences.append(i)
- #输出有几处不同
- print('两个文件一共有【%d】处不同'%count_lines)
- #输出第几行不一样
- for i in differences:
- print('第%d行不同'%(i+1))
- print(file1[i],file2[i])
复制代码
动动手2
- file_name = input('请输入要打开的文件(C:\\test.txt):')
- lines = input('请输入需要显示该文件的前几行:')
- line =int(lines)
- while True:
- if line < 0:
- lines = input('请输入需要显示该文件的前几行:')
- line =int(lines)
- else:
- break
- f =open(file_name,'r')
- print('文件%s的前%d行内容如下:'%(file_name,line))
- while line:
- print(f.readline())
- line -= 1
复制代码
动动手3
- file_name = input('请输入要打开的文件(C:\\test.txt):')
- lines = input('请输入需要显示的行数【格式如 13:21 或 :21 或21:】:')
-
- (line1,line2) = lines.split(':',1)
- flag = 0
- if line1.isdigit():
- line1_int = int(line1)
- else:
- line1_int = None
- line1_str = '开始'
- flag += 1
- if line2.isdigit():
- line2_int = int(line2)
- else:
- line2_int = None
- line2_str = '末尾'
- flag += 2
- f =open(file_name,'r')
- if flag == 0:
- print('文件%s从第%d行到第%d行内容如下:'%(file_name,line1_int,line2_int),end ='\n\n')
- elif flag == 1:
- print('文件%s从开始到第%d行内容如下:'%(file_name,line1_int,line2_int),end ='\n\n')
- elif flag == 2:
- print('文件%s从第%d行到末尾内容如下:'%(file_name,line1_int,line2_int),end ='\n\n')
- else:
- print('文件%s的全文内容如下:'%(file_name,line1_int,line2_int),end ='\n\n')
- for each_line in list(f)[line1_int:line2_int]:
- print(each_line)
-
复制代码
动动手4
这道题最难,难点在于忘记了列表方法里面有replace
- file_name = input('请输入文件名(C:\\test.txt):')
- f_read = open(file_name,'r')
- old_word = input('请输入需要替换的单词或字符:')
- new_word = input('请输入新的单词或字符:')
- count = 0
- content = []
- for eachline in f_read:
- if old_word in eachline:
- count += eachline.count(old_word) #count感觉应该用这个
- eachline = eachline.replace(old_word, new_word)
- content.append(eachline)
- print('文件 %s 中一共有%d个【%s】'%(file_name,count,old_word))
- print('您确定要把所有的【%s】换成【%s】吗?'%(old_word,new_word))
- answer = input('【YES/NO】')
- if answer in 'YESyesYes':
- f_write = open(file_name,'w')
- f_write.writelines(content)
- a = (line for line in open('动动手4.txt'))
- for i in a:
- print(i)
- f_write.close()
复制代码
|
|