#文件操作
# 1.打开文件,得到文件句柄并赋值给一个变量
# 2.通过句柄对文件进行操作
# 3.关闭文件
#能调用方法的一定是对象
# li=[1,2,3]
# li.append(‘2‘)
# ‘asc‘.capitalize()
#‘r‘:读
#‘w‘:写
#‘a‘:在文件末尾追加内容,追加模式
# import time
# f=open(‘encode_py3‘,‘a‘,encoding=‘utf8‘)#操作句柄
# print(f.fileno())#文件描述符
# date=f.read()
# print(date)
# f.write(‘hello‘)#把之前的文件格式化,"hello"再写上
# f.write(‘alex‘)#和上面的代码 紧挨在一起
# time.sleep(30)#
# f.close()#关闭
# f=open(‘草稿‘,‘a‘,encoding=‘utf8‘)
# f.write()
#print(f.read(5))#打印前面5个字符
# a=f.readline()
# print(a)
#print(f.readline())#打印完后光标已经移动到最后面
# print(f.readlines())#打印成一排列表‘[....]‘
#
# for i in f.readlines():
#
# print(i.strip())#‘i‘的后面加 strip 可以无效文件中的\n
#
#题目:把文件中的第六行句子后面加一些字符串,前面的文本不动
# number=0
# for i in f.readlines():
# number+=1
# if number==6:
# print(i.strip(),‘ijiiu‘)
# else:
# print(i.strip())
# f.close()
#上面题目的优化方法
# number=0
# for i in f.readlines():#f.readlines 把文本转换成列表格式
# number+=1
# if number==6:
# i=‘‘.join((i.strip(),‘ijiiu‘))#取代万恶的‘+‘#在目标文本后面加字符串
# #i=i.strip()+‘ijiiu‘
# print(i.strip())
# f.close()
# data=f.readlines()
# f.close()#把文件打开看一下后又关闭文件
#
# number=0
# for i in data():
# number+=1
# if number==6:
# i=‘‘.join([i.strip(),‘ijiiu‘])
# print(i.strip())
# f.close()
#读取 #这是最好的
# number=0
# for i in f: #这是 for 内部将 f 对象做成一个迭代器,,用一行去一行
# if number == 6:
# i = ‘‘.join(i.strip(),‘iiii‘)
# print(i.strip())
#
#
#
# print(f.tell())#打印当前光标位置
# print(f.read(2))
# print(f.tell())#utf-8 格式 , 英文占1个字符,中文占3个字节
#
#
# print(f.seek(0))#调整光标位置
# print(f.read(4))
# import sys,time
# for i in range(30):
# sys.stdout.write("*")
# sys.stdout.flush()
# time.sleep(0.1)
# import sys,time
# for i in range(30):
# print(‘*‘,end=‘‘,flush=True)
# time.sleep(0.1)
# f=open(‘草稿‘,‘a‘,encoding=‘utf8‘)
# print(f.isatty())
# f.truncate(5)#什么都不加,就默认删除全部内容
# f.write(‘hello world‘)
# f.truncate(5)
# f.close()
# r+ , w+ , a+ 三种模式
# r+ 模式
# f=open(‘草稿‘,‘r+‘,encoding=‘utf8‘)
#
# print(f.readline())
# f.write(‘岳飞‘)
#
# f.close()
# #光标跑到文件的后面
#
#
# # w+
# f=open(‘草稿‘,‘w+‘,encoding=‘utf8‘)
#
# print(f.readline())#格式化后
# f.write(‘岳飞‘)
# print(f.tell())
# f.seek(0)#调整光标位置
# print(f.readline())
# f.close()
# #先清空内容,再打印内容,在光标后面写内容
#
#
# # a+
# f=open(‘草稿‘,‘a+‘,encoding=‘utf8‘)
# print(f.tell())
# print(f.readline())
#
# f.close()
# 终极问题 怎么修改文件内容
# f=open(‘草稿‘,‘r+‘,encoding=‘utf8‘)
# number=0
# for line in f:
# number+=1
# if number==6:
# f.write(‘王进‘)
#解决不了
#创建新的文件,覆盖原文件
#完全替换第五行内容
# f_read=open(‘草稿‘,‘r‘,encoding=‘utf8‘)
# f_write=open(‘草稿2‘,‘w‘,encoding=‘utf8‘)
#
# number=0
# for line in f_read:
# number+=1
# if number==5:
# line=‘hello 岳飞\n‘
# f_write.write(line)
#
# f_read.close()
#在第五行后面追加内容,前面的内容不修改
# f_read=open(‘草稿‘,‘r‘,encoding=‘utf8‘)
# # f_write=open(‘草稿2‘,‘w‘,encoding=‘utf8‘)
# #
# # number=0
# # for line in f_read:
# # number+=1
# # if number==5:
# # line=‘‘.join([line.strip(),‘王进\n‘])
# # #line=‘hello 岳飞\n‘
# # f_write.write(line)
# #
# # f_read.close()
# a=str({‘beijing‘:{‘1‘:111}})
# print(type(a))
# print(a)#{‘beijing‘: {‘1‘: 111}} 字符串
# a=eval(a)
# print(type(a))
# print(a[‘beijing‘])#{‘1‘: 111}
# f=open(‘log‘,‘r‘)#d1种
# f.readline()
# f.read()
# f.close()
#
# with open(‘log‘,‘r‘) as f:#d2种 #常用方式
# f.readline()
# f.read()
# print(‘hello‘)
# with 同时管理多个文件对象
with open(‘log1‘,‘r‘) as f_read,open(‘log2‘,‘w‘) as f_write:
for line in f_read:
f_write.write(line)
原文:https://www.cnblogs.com/xzdjs/p/9532171.html