马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 胖豆lucky 于 2018-12-11 14:01 编辑
第0题:编写一个程序,接受用户的输入并保存为新的文件。
def file_write(file_name):
f = open(file_name,'w') #①这里不能写成'D:\\file_name',不然文件名字就改不了了!
print("请输入内容【单独输入':w'保存退出】:")
while True:
content = input("")
if content != ":w":
f.write('%s\n' % content) #②换行以及格式化字符串的用法
else:
break
f.close() #③涉及到写关于文件的代码一开始就把close()写上以防忘记
file_name = input("请输入文件名:")
file_write(file_name)
知识点:
1.关于换行\n
2.格式化字符串用法(思路:字符串→相关用法)
第1题:编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置。
def file_compare(file_name1,file_name2):
f1 = open(file_name1)
f2 = open(file_name2)
count = 0
differ = []
for line1 in f1:
line2 = f2.readline()
count += 1
if line1 != line2:
differ.append(count)
f1.close()
f2.close()
return differ #①
file_name1 = input("请输入需要比较的头一个文件名:")
file_name2 = input("请输入需要比较的另一个文件名:")
differ = file_compare(file_name1,file_name2) #②
length = len(differ)
if length == 0:
print("两个文件完全一样")
else:
print("两个文件共有【%d】处不同:" % length)
for i in differ:
print("第 %d 行不一样" % i)
知识点:
1. readline()是一行“接着”一行的读取的,别忘了指针这个东西!
2.①②处,返回值
3.计数的另一种方法:利用 list.append()
第2题:编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上。
我的方法:def file_print(file_name,number):
f = open(file_name)
print("\n文件" + file_name + "的前" + number +"行的内容如下:\n")
count = 0
while int(count) < int(number):
print(f.readline(),end='') #f.readline()需要输出
count +=1
f.close()
file_name = input("请输入要打开的文件:")
number = input("请输入需要显示该文件前几行:")
file_print(file_name,number)
JY的方法:def file_view(file_name, line_num):
print('\n文件%s的前%s的内容如下:\n' % (file_name, line_num))
f = open(file_name)
for i in range(int(line_num)):
print(f.readline(), end= '')
f.close()
file_name = input(r'请输入要打开的文件(C:\\test.txt):')
line_num = input('请输入需要显示该文件前几行:')
file_view(file_name, line_num)
知识点:f.readline()
第3题:要求在上一题的基础上扩展,用户可以随意输入需要显示的行数。
这里的复杂性在于有“开始”,“末尾”,“全文”等字眼,所以设了begin=‘1’,end=‘-1’,之所以设成字符串,是因为在输出的时候需是字符串。
def file_print(file_name,number):
if number.strip() == ":":
begin = '1'
end = '-1' #为了全文
(begin,end)=number.split(":",1) #先想到要把它拆分开来→字符串→字符串的方法有一个split()
if begin == "":
begin = '1'
if end == "":
end = '-1'
if begin == '1':
print("\n文件%s从开始到第%s行的内容如下:\n" % (file_name,end))
if end == '-1':
print("\n文件%s从第%s到末尾的内容如下:\n" % (file_name,begin))
if (begin != '1') and (end != '-1'):
print("\n文件%s从第%s行到第%s行的内容如下:\n" % (file_name,begin,end))
if (begin == '1') and (end == '-1'):
print("\n文件的全文的内容如下:\n" % (file_name))
begin = int(begin)-1
end = int(end)
length = end - begin
f=open(file_name)
for i in range(begin):
f.readline() #把前面的几次读取完,使指针指向这里
if length > 0:
for i in range(length):
print(f.readline(),end='')
else:
print(f.read())
f.close() #先写好close()
#难点在于行数不好算,因为有结束、开始、全部这种词语,得把它们数量化才可以
file_name = input("请输入要打开的文件:")
number = input("请输入需要显示的行数【格式如13:21或:21或21:】:")
file_print(file_name,number)
未解决问题:第4题+视频
|