Python练习篇12-txt文件处理

本文介绍文件的操作
代码如下:

import os

file_name = 'text.txt'	#文件名,只能打开当前路径下文件,其他路径文件需改为对应路径


#write()方法写入

text = 'Hello World'	#文本

f = open(file_name, 'w')	#‘w’,表示开放写的权限,写入内容会覆盖之前内容
f.write(text)	#写入text文本
f.close()	#关闭


#‘a’追加写入,不覆盖之前内容

addtext = '\nPython.37'

f =open(file_name, 'a')		#‘a’,表示追加写入,不会覆盖之前内容
f.write(addtext)
f.close()


#read()方法读取,‘r’
f = open(file_name, 'r')	#‘r’,表示读取权限
read = f.read(2)	#read(2)表示,只读取从文件指针开始的2个字符,不填数字,读取全部内容
print(read)

#创建新文件
new_name = 'new_text.txt'
f = open(new_name, 'x')		#使用‘x’打开更安全,无文件就创建新文件
f.write(text)
f.close()


#已list形式打印出每行
f = open(new_name)
r = f2.readlines()
print(r)
#['Hello World\n', 'Python.37']


#指定打印多少行
f = open(new_name)
for i in rang(number):	#number表示打印前面多少行
	print(f.readline())



#迭代打印文件每行内容
for i in f:
    print(i)
#Python.37
#Hello World

升级一下,写一个替换文件中内容并查看的程序(参照小甲鱼)


def file_replace():
    file_name = input('请输入文件名:')
    rep_word = input('请输入需要替换的单词或字符:')
    new_word = input('请输入新的单词或字符:')

    f_read = open(file_name)

    content = []
    count = 0

    for eachline in f_read:
        if rep_word in eachline:
            count = eachline.count(rep_word)
            eachline = eachline.replace(rep_word, new_word)
        content.append(eachline)

    decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【Yes/No】:'
                   % (file_name, count, rep_word, rep_word, new_word))

    if decide in ['YES', 'Yes', 'yes']:
        f_write = open(file_name, 'w')
        f_write.writelines(content)     #writelines 不会覆盖之前内容
        f_write.close()
        readed = input('修改保存成功!\n是否需要查看?\n【Yes/No】:')

        if readed in ['YES', 'Yes', 'yes']:
            f_readed = open(file_name, 'r')
            r = f_readed.read()
            print(r)
            
file_replace()

运行如下:

请输入文件名:text1.txt
请输入需要替换的单词或字符:Python
请输入新的单词或字符:World

文件 text1.txt 中共有1个【Python】
您确定要把所有的【Python】替换为【World】吗?
【Yes/No】:yes
修改保存成功!
是否需要查看?
【Yes/No】:yes
Hello World
World.37

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值