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])
动动手2file_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
动动手3file_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
这道题最难,难点在于忘记了列表方法里面有replacefile_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()
|