python入门之文件读与写

#------------------------文件读取操作1-----------------------------------
#data = open("yesterday",encoding="utf-8").read()
#print(data)

f = open("yesterday",'r',encoding="utf-8")#文件句柄,r文件读取模式,不能写
data = f.read()
data2 = f.read()

print(data)
print('-----data2-------')
print(data2)
f.close()

#不用写close的打开方式:
with open("yesterday2.bak","w",encoding="utf-8") as f:
    print(f.readline())

------输出结果----

When I was yong, 当我年轻时,
I’d listen to the radio, 常听收音机,
Waiting for my favorite songs。 等待心爱的歌曲。
When they played I’d sing along, 听到播放时便随声歌唱。
It made me smile。 这使我欢畅。
Those were such happy times, 那时多么幸福的时刻!
That they’restarting to sing so fine。他们又开始唱得如此动听。

-----data2-------


Process finished with exit code 0
#------------------文件写入操作
f = open("yesterday2",'w',encoding="utf-8")#文件句柄 'w'写模式,不能读,创建一个新文件,如果存在这个文件将覆盖文件内容,操作需谨慎

f.write("这是文件的写操作\n")
f.write("这是文件的写操作\n")
f.close()
#文件追加

f = open("yesterday",'a',encoding="utf-8")#’a‘为在文件末尾追加内容,不会覆盖源文件内容,此模式可写不可读
f.write("append追加操作")
#---------------------------------------------文件读取操作2--------------------------------------
f = open("yesterday2",'r',encoding='utf-8')

#读取1行
print(f.readline())#读一行

#读5行
for i in range(5):
    print(f.readline())#readline只适合读取小文件

#循环读取,第10行不打印
for index,line in enumerate(f.readlines()):
    if index ==9:
        print('---------------')
    print(line.strip())

f = open("yesterday2",'r',encoding='utf-8')

#循环读取,第10行不打印 使用迭代器写法
count =0
for line in f:
    if count == 4:
        print("------------------")
        count += 1
        continue
    print(line.strip())
    count += 1

-----文件操作补充:

f = open("yesterday2",'r',encoding='utf-8')
print(f.tell())#看文件光标在哪

print(f.read(5))
print(f.tell())

f.seek(0)#光标设置到0
print(f.readline())

print(f.encoding)#字符集
print(f.errors)#异常处理使用

print(f.fileno())#返回内存编号
print(f.seekable())
print(f.readable())#判断文件是否可读

print(f.flush())#时时将内容刷到文件里面
print(dir(f.buffer))

print(f.truncate(10))#截断

#打印进度条
import sys,time

for i in range(50):
        sys.stdout.write("#")
        sys.stdout.flush()
        time.sleep(0.1)

-----------文件读写模式-------------

f = open("yesterday2",'r+',encoding='utf-8')#r+ 文件既能读又能追加写的模式

print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())
f.write("-------------------------")

print(f.readline())
-------------文件写读模式-----------------
f = open("yesterday2",'w+',encoding='utf-8')#w+ 写读模式,会覆盖原有的文件内容

f.write("-------------1------\n")
f.write("-------------2------\n")
f.write("-------------3------\n")
f.write("-------------4------\n")
f.write("-------------5------\n")
print(f.tell())
print(f.readline())
f.write("---1---3-----4------5--\n")
一般写读模式没什么用,读写模式用的多


---------------------文件的修改---------------------

# 文件的修改
#1.把文件加载到内存中修改(这种方法是把所有内容读到内存,文件大不适用)
#2.打开文件修改完以后写入到另外一个文件中

f = open("yesterday2","r",encoding="utf-8")

f_new = open("yesterday2.bak","w",encoding="utf-8")

for line in f:
    if "前世你怎舍下" in line:
        line = line.replace("前世你怎舍下","修改修改")
        f_new.write(line)
    else:
        f_new.write(line)
f.close()
f_new.close()
#输入参数修改
import sys
f = open("yesterday2","r",encoding="utf-8")

f_new = open("yesterday2.bak","w",encoding="utf-8")

find_str = sys.argv[1]
relpace_str = sys.argv[2]

for line in f:
    if relpace_str in line:
        line = line.replace(relpace_str,relpace_str)
        f_new.write(line)
    else:
        f_new.write(line)
f.close()
f_new.close()




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值