Python文件的基础操作(2)

这篇具有很好参考价值的文章主要介绍了Python文件的基础操作(2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python文件的基础操作(2)

  • 二进制模式下读写操作
  • 练习
  • 控制文件内指针(光标)的移动
  • 文件的修改
  • 函数的介绍

练习

# 小练习: 编写拷贝工具
	1. 让用户输入被拷贝的文件路径(源文件路径)
    2. 输入即将要拷贝的文件路径(目标文件路径)
    3. 以读的模式打开源文件,以写的模式打开目标文件
source_file_path = input('请输入待拷贝的文件路径:').strip()
dst_file_path = input('请输入目标文件的路径:').strip()
with open(r'%s' % source_file_path, 'rb') as read_f:
    with open(r'%s' % dst_file_path, 'wb') as write_f:
        for line in read_f:
            write_f.write(line) 

二进制模式下读写的操作

#大前提:文件内指针的移动都是Bytes为单位的,唯一例外的是t模式下的read(n),n以字符为单位
with open('a.txt',mode='rt',encoding='utf-8') as f:
     data=f.read(3) # 读取3个字符
    

with open('a.txt',mode='rb') as f:
     data=f.read(3) # 读取3个Bytes


# 之前文件内指针的移动都是由读/写操作而被动触发的,若想读取文件某一特定位置的数据,则则需要用f.seek方法主动控制文件内指针的移动,详细用法如下:
# f.seek(指针移动的字节数,模式控制): 
# 模式控制:
# 0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的
# 1: 该模式代表指针移动的字节数是以当前所在的位置为参照的
# 2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的
# 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用
t模式下:
    f.read() 如果不指定参数,默认情况下是一次性读取所有
    f.read(5) 如果指定了参数,返回的就是字符个数
    
b模式下:
    f.read(5) 如果指定了参数,返回的就是字节个数
    如果文件中有中文字符,切记书写的数字要是3的倍数,如果有中文也有英文字符,这个数字需要计算了
指针:就可以理解成光标的移动
# with open('a.txt', 'r', encoding='utf-8') as f:
#     print(f.read(5)) # 你helloworld
#     f.seek(3, 1)
#     print(f.read())
#     # print(f.read(5))
#     # print(f.read())

with open('a.txt', 'rb') as f:
    print(f.read(2))  # helloworld
    f.seek(-3, 2)
    print(f.read())
    # print(f.read(5))
    # print(f.read())

"""
f.seek()
    offset: int,
        代表的是移动的偏移量
        如果是正数,就往右边移
        如果是负数,就往左边以----------》左边要可移动
 """


# 小练习:实现动态查看最新一条的效果
# 小练习:实现动态查看最新一条日志的效果
import time  # 导入的一个时间模块

# linux里面的一条命令:tail -f access.log
with open('access.log', mode='rb') as f:
    f.seek(0, 2)
    while True:
        line = f.readline()
        if len(line) == 0:
            # 没有内容
            time.sleep(0.5) # 睡眠0.5秒
        else:
            print(line.decode('utf-8'), end='')

文件修改

mode='r+'    
mode='w+t'
mode='a+t'
# 可读可写
# 可读可写
# 可读可写
1. 硬盘中得数据是不允许直接修改的
2. 内存中得数据是可以直接修改的
a.txt
kevinkevin     山东    179    49    12344234523
李二蛋     河北    163    57    13913453521
王全蛋     山西    153    62    18651433422

'''方式一:'''
# 1. 读取文件内的所有数据
# 快捷键:shift+enter
with open('a.txt', 'r', encoding='utf-8') as f:
    data = f.read()

print(data)

# 2. 读取完字符之后,做字符替换
with open('a.txt', 'wt', encoding='utf-8') as f:
    f.write(data.replace('kevin', 'kevinSB'))
    
'''方式2:'''
import os

with open('a.txt',mode='rt',encoding='utf-8') as read_f, \
        open('.a.txt.swap',mode='wt',encoding='utf-8') as wrife_f:
    for line in read_f:
        wrife_f.write(line.replace('SB','kevin'))

os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')
    

函数的介绍

函数的语法

def 函数名(参数1,参数2,...):
	"""文档描述"""
	函数体
	return 值
"""
1. def 就是定义函数的关键字,它不能够省略,必须写
2. my_len():函数名,函数名的命名遵循变量的命名规范,他也是必填的,不能省略的,括号不能省略
3. a, b称为是函数的参数,是可选的,可有可无
    参数就是执行函数的一些前提条件
4. '''函数注释'''
    注释不参与函数的执行,只起到函数功能的提示作用,以及各个参数是什么意思
    # 可有可无的,但是,推荐每个函数都加上函数注释
5.  # 函数体
    才是函数的核心,它是函数所具备的核心功能,应该是必须有的,pass
    没有函数体的函数是没有意义的函数,一般情况都是要有函数体的
6. 返回值  return 函数的返回值
    # 返回值也是可选的,可以有返回值,也可以没有返回值,但是一般情况下都要有返回值
    # 一个函数只能有一个返回值...
"""

函数的定义与调用

1. 函数必须先定义后调用,没有定义函数是一定不能够调用的
2. 函数在定义阶段,只检测语法是否错误,不检测逻辑是否有问题
3. 逻辑上的错误只会在调用阶段检测
4. 函数一定是被调用之后才会执行函数内部的代码块,不调用函数一定不会执行函数的
	# 如何调用函数
    函数名() # 只要函数名加括号一定会执行函数体代码
    函数如果在定义阶段有参数,那么,在调用的时候,连参数一块写上
    
函数调用的内部原理:
1. 先在内存空间中申请一块空间地址来存储函数体代码
2. 把函数名和函数体所在的空间地址绑定在一起
3. 以后只需要通过函数名()来访问函数体代码即可

函数的类型

1. 内置函数
	# Python解释器中原本就存在的,可以直接拿来使用,无需定义,直接调用
    len print input 之前学习的数据类型的各个方法


2. 自定义函数
	# 程序员自己写的函数,就必须先定义后调用
    1. 无参函数:函数在定义阶段没有参数
    	def my_len():
            pass
        
        my_len() 
    2. 有参函数:在函数定义阶段有参数的存在
    	def my_len(a, b):
            pass
        
        my_len(1, 2)
    3. 空函数
    	def my_len():
            pass
        
       """作用就在于可以帮助我们梳理业务逻辑""" 

文章来源地址https://www.toymoban.com/news/detail-695022.html

到了这里,关于Python文件的基础操作(2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python基础语法四】python对文件的操作

    seek(字节) truncate(字节) read(字符/字节) readline(字符/字节)

    2024年02月01日
    浏览(26)
  • python超详细基础文件操作【建议收藏】

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码可以在我主页的资源里找到,如果在学习的

    2024年02月05日
    浏览(31)
  • Python超详细基础文件操作(详解版)

    1. 文件打开与关闭 1.1 打开文件 在Python中,你可以使用 open() 函数来打开文件。 以下是一个简单的例子: 在上述示例中: \\\'example.txt\\\' 是文件的路径和名称,你可以根据实际情况修改为你想要打开的文件。 \\\'r\\\' 表示只读模式。如果你想要写入文件,可以使用 \\\'w\\\' 模式,如果想要

    2024年01月17日
    浏览(27)
  • Python基础教程--3.1文件的相关操作

    在 Python 中,文件操作是一个非常重要的部分。本文将介绍如何在 Python 中打开、读写、删除和重命名文件。 在 Python 中,可以使用 open() 函数打开文件。该函数需要两个参数:文件路径和打开模式。 例如,如果要打开名为 example.txt 的文件,可以使用以下代码,r 表示读取模式

    2023年04月08日
    浏览(20)
  • Python文件操作与输入输出:从基础到高级应用

    Python作为一门功能强大且易于学习的编程语言,在文件操作和输入输出方面提供了丰富的功能和工具。本文将从基础知识开始,逐步深入探讨Python中的文件操作和输入输出技术,帮助读者在编程过程中更好地利用这些功能。 在Python中,文件操作是一项重要的任务。我们首先要

    2024年02月12日
    浏览(28)
  • Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)

    我们平时所创建的变量都是保存在内存中的,我们知道如果重启应用或者重启机器,内存中的数据就会丢失。 如果想让数据能够持久化存储,就可以把数据保存到文件或者是数据库中。 比如windows上,通过后缀名可以看到常见的文件类型有: 可执行文件(exe) 文本文件(t

    2024年02月01日
    浏览(30)
  • 掌握Python文件操作:从基础到高阶的全方位探索

    在本篇博客中,我们将全面、深入地探讨Python中的文件操作。文件操作在Python编程中是不可或缺的一部分,它包含了打开、读取、写入和关闭文件等各种操作。我们将从基础的文件操作讲解到高级的文件处理技巧,以及如何优雅地使用Python进行文件操作。每一部分我们都会分

    2024年02月08日
    浏览(54)
  • Python与CAD系列基础篇(一)操作AutoCAD与读写CAD文件

    对于Python与CAD进行联动而言,首要的就是建立Python与AutoCAD软件的连接以及操作CAD文件。 作为本系列文章的开篇,将介绍:①如何通过python连接到AutoCAD软件;②如何使用python进行cad文件的读写。两者的区别是①通过win32com.client或pyautocad连接AutoCAD进行处理(需要AutoCAD软件,可

    2024年02月04日
    浏览(34)
  • Python入门教程:掌握for循环、while循环、字符串操作、文件读写与异常处理等基础知识

    在 Python 中,for 循环用于遍历序列(list、tuple、range 对象等)或其他可迭代对象。for 循环的基本语法如下: 其中, 变量 表示每次循环中取出的一个元素, 可迭代对象 表示被遍历的对象。下面是一个 for 循环的例子: 输出结果为: 代码中, fruits 是一个列表, fruit 是当前循

    2024年02月10日
    浏览(46)
  • 【c基础】文件操作

    目录 1.fopen和fclose函数 2.文本文件与二进制文件的区别 基于字符编码vs基于值编码 写入和读取时的区别 优缺点比较 3.win和linux文本文件中换行符的区别 4.getc和putc函数 getc 用循环打印文件所有内容 自定义读取文件一行内容的函数 putc 自定义将字符串写入文件的函数 自定义文件

    2024年04月27日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包