程序1
编写一个程序,接受用户的输入并保存为新的文件,程序实现如图:
def file_write(filename):
file1=open('E:/%s'%filename,'w')
context=print("请输入内容:")
while 1:
write=input()
if write != ':w':
file1.write('%s\n'%write)
else:
break
file1.close()
filename=input("输入文件名:")
file_write(filename)
程序2
编写一个程序,比较用户输入的两个文件,如果不同。显示出所有不同处的行号与第一处不同字符的位置。
def file_compare(fname1,fname2):
f1=open(fname1)
f2=open(fname2)
count=0 #统计行数
dif=[] #统计不同处
for row1 in f1:
row2=f2.readline()
count+=1
if row1!=row2:
dif.append(count)
f1.close()
f2.close()
return dif
程序3
编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行打印出来,程序实现如图:
def file_print(filename,num):
print('文件%s前%s行的内容如下:'%(filename,num))
file1=open(filename)
for i in range(int(num)):
print(file1.readline())
filename=input(r"请输入要打开的文件名(E:/file1.txt):")
num=input("请输入行数:")
file_print(filename,num)
程序4
# 在上一题的基础上扩展,用户可以随意输入要显示的行数。
# 如输入2:5表示打印第2行到第5行的内容;
# 输入:2表示打印从开头到第2行的内容;
# 输入4:表示打印从第4行到结尾的内容;
# 输入:表示打印全部的内容
方法1:
def file_read(filepath,line):
if line.strip()==":":
begin=1
end=-1
(begin,end)=line.split(":")
if begin=='':
begin=1
if end=='':
end=-1
if begin==1 and end==-1:
t='的全文'
elif begin==1:
t='从开始到第%s行'%end
elif end=='':
t='从第%s行到结束'%begin
else:
t='从第%s行到第%s行'%(begin,end)
print('文件%s%s的内容如下'%(filepath,t))
begin=int(begin) - 1
lines=int(end) - int(begin)
f=open(filepath)
for i in range(begin): #用于消耗begin以前的内容
f.readline()
if lines<0:
print(f.read())
else:
for j in range(lines):
print(f.readline())
f.close()
file=input(r'请输入要打印的文件路径:如(E:/file4.txt)')
linetemp=input(r'请输入要打印的行数,如(2:5或:2或3:)')
file_read(file,linetemp)
往期回顾
Python学习笔记(3)-数据类型
Python学习笔记(8)-四个小程序
Python学习笔记(10)-回文联和统计入参