1.要求
(1)创建一个文件 dldl.txt , 使用代码按以下格式写入内容
f=open('dldl.txt','w',encoding='utf8')
f.writelines('我要和生活再死磕几年\n要么毁灭,要么铸就辉煌\n如果有一天,你发现我在平庸面前低了头\n请向我开炮')
f.close()
(2)读取内容并在每一行的最前面加上序号, 然后写入到另一个文件 dldl2.txt 文件中
效果如下:
file1 = input('请输入你想要复制的文件:')#自定义要复制的文件名字
file = open(file1, 'r', encoding='utf8')#先用r模式打开文件
file1_copy = open('dldl2.txt', 'w', encoding='utf8')#在创建一个新文件,用w模式打开
num = 0#定义一个计数器
for i in file:#for循环遍历file这个文件
file1_copy.write(str(num + 1) + '.' + i)#用file1_copy中的write方法写入进当前文件中
num += 1
file.close()#关闭file文件
file1_copy.close()#关闭file_copy
(3)读取内容并在前三行的每一行的最后加上逗号, 最后一行的后面加上句号
效果如下:
with open("dldl2.txt", "r", encoding='utf8') as f:
lines = f.readlines()
for i in range(len(lines)):
if i < 3:
lines[i] = lines[i].replace('\n', ',\n')
elif i == len(lines) - 1:
lines[i] = lines[i] + "."
with open("dldl2.txt", "w", encoding='utf8') as ff:
ff.writelines(lines)
# 先用r读取文件内容,将文件内容赋值给list1,遍历文件内容的长度,设置限制行数,如果行数在前三行则将换行符替换成',\n',
# 如果在最后一行则添加一个句号,在用w模式打开文件,将内容写进去
(4)在第二行插入一行, 内容格式: ‘xxx永不言败!!!’ (注:其中的xxx改成你自己的名字)
效果如下:
with open('dldl2.txt', 'r+', encoding='utf8') as f:
lines = f.readlines()
lines.insert(1, '陈某永不言败\n') # 在列表第一个位置插入文字
f.seek(0) # 指向文件开头
f.writelines(lines) # 使用writelines将字符串列表写入文本文件
(5)复制xxx.txt文件, 生成的新文件名字叫做’01.xxx-副本.txt’
例如: 复制 dldl2.txt -> 01.dldl2-副本.txt
n = input('请输入你想要复制的文件:') # 自定义复制文件的名字
with open(n, 'r', encoding='utf8') as f: # 打开文件
lines = f.readlines()
index = n.rfind('.txt')#获取.txt的下标
new_name = '01.' + n[:index] + '-副本' + n[index:]#进行拼接
f = open(new_name, 'w', encoding='utf8')#创建新的文件,将内容写进去
for i in lines:
f.write(i)
f.close()
(6)修改当前文件dldl2.txt内容,把所有的 ‘我’ 修改成 ’我 + 你自己的名字(张三) + ,’
with open('dldl2.txt', 'r', encoding='utf8') as f:
list1 = f.readlines()
with open('dldl2.txt', 'w', encoding='utf8') as ff:
for i in list1:
i = i.replace('我', '我陈某,')
ff.write(i)
(7)修改当前文件dldl2.txt内容,把所有的 ‘,’ (不包含每行末尾的逗号) 修改成 ~
with open('dldl2.txt', 'r', encoding='utf8') as f:
list1 = f.readlines()
with open('dldl2.txt', 'w', encoding='utf8') as ff:
for i in list1:
i = i.replace(',', '~')
ff.write(i)
#使用with open ’r’模式打开文件,使用readlines将文本中每一行都作为独立的字符串对象,并将这些对象放入在列表返回,再使用with open ‘w’模式打开文件,for循环遍历列表,使用字符串中的replace将文件中的’,’替换成’~’
(8)重新对当前文件dldl2.txt中的每一行内容最前面设置新的序号替换原本的序号
with open('dldl2.txt', 'r', encoding='utf8') as f:
list1 = f.readlines()
with open('dldl2.txt', 'w', encoding='utf8') as ff:
num = 0
for i in list1:
index = i.find('.')
new_str = str(num) + '.' + i[index + 1:]
num += 1
ff.write(new_str)
#使用with open ’r’模式打开文件,使用readlines将文本中每一行都作为独立的字符串对象,并将这些对象放入在列表返回,再使用with open ‘w’模式打开文件,设置一个计数器,for循环遍历列表,使用字符串中的find方法获取.的下标,因为字符串不能与数字相加,需要用str方法把num包起来,再进行拼接,赋值给new_str,再用write方法写入dldl2.txt
- 有一份‘邀请函.txt’的空白文件,请在同级目录下,编写一段代码,将内容’诚挚邀请您来参加本次宴会‘
f=open('邀请函.txt','w',encoding='utf8')
f.write('诚挚邀请你来参加本次宴会')
- 添加问候语和发件人,内容是’best regard 李雷‘,让内容看起来是:
诚挚邀请您来参加本次宴会
best regar
李雷
with open('邀请函.txt', 'a+', encoding='utf8') as f:
list1 = f.readlines()
f.write('\nbest regar\n李雷')
- 这封邮件需要发送给‘丁一,王美丽,韩梅梅’三位朋友,请在邮件内容开头处添加收件人名字,并且生成相应名字的邮件,邮件内容应该为:
丁一:
诚挚邀请您来参加本次宴会
best regards
李雷
list1 = ['丁一', '王美丽', '韩梅梅'] # 创建一个列表存储人物名字
with open('邀请函.txt', 'r', encoding='utf8') as ff:
n = ff.read()#使用read读取文件所有内容
for i in list1:#for遍历列表
with open(i + '邀请函.txt', 'w', encoding='utf8') as a:#使用列表中的元素拼接邀请函.Txt
a.write(i + ':\n' + n)#使用write写入列表元素拼接’:\n’,再拼接’邀请函.Txt’中内容
- 京东二面笔试题
- 生成一个大文件ips.txt,要求1200行,每行随机为172.25.254.0/24段的ip
import random
f = open('ips.txt', 'w', encoding='utf8')
f.close()
with open('ips.txt', 'w', encoding='utf8') as f:
list1 = []
for i in range(255):
ips = '127.25.254.' + str(i)
list1.append(ips)
for count in range(1200):
index = random.randint(0, 254)
f.write(list1[index] + '\n')
- 读取ips.Txt文件统计这个文件中ip出现频率排前10的ip
dict1 = {}#创建一个字典用于接收文件的ip
with open('ips.txt', 'r', encoding='utf8') as f:
lines = f.readlines()
count = 10#定义一个变量,给定初始值为10,意思就是指前10的数据
for ip in lines:#for循环遍历lines
if ip in dict1:#如果ip在dict1这个字典中,则这个ip数量就增加一次
dict1[ip] += 1
else:
dict1[ip] = 1#如果不在这个字典中则这个ip则设置为1次
print(sorted(dict1.items(), key=lambda x: x[1], reverse=True)[:count])
#对dict1字典根据value值进行排序,逆序排序,并选取前count个
12.实现文件操作功能:(10分)
需求:
(1)创建content.txt文件, 写入内容:
f=open('content.txt','w',encoding='utf8')
f.writelines('你总是期待着,期待着有一天自己会突然变好.你总\n是在等,等着有一天,自己会突然改变.恰恰”期带”和”\n等”才是把一个人变得越来越废的关键.')
f.close()
(2)用户输入需要复制的文件名, 复制后的文件名格式: 原文件名-副本.txt
例如: 用户输入content.txt ,复制之后的文件名: content-副本.txt
n = input('请输入你想要复制的文件:')
with open(n, 'r', encoding='utf8') as f:
lines = f.readlines()
index = n.rfind('.txt')
new_name = '01.' + n[:index] + '-副本' + n[index:]
f = open(new_name, 'w', encoding='utf8')
for i in lines:
f.write(i)
f.close()