返回顶部
首页 > 资讯 > 后端开发 > Python >Python之路【第五篇】:Python
  • 172
分享到

Python之路【第五篇】:Python

之路第五篇Python 2023-01-31 00:01:02 172人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

一、文件操作 1、介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分。 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的

一、文件操作

1、介绍

计算机系统分为:计算机硬件,操作系统,应用程序三部分。

我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。

有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件的流程:

#1、打开文件,得到文件句柄并赋值给一个变量
#2、通过句柄对文件进行操作
#3、关闭文件

代码如下:

f=open('朱锐',encoding='utf-8') #python3默认是utf-8编码,但是新建文件追随的系统编码,需要通过encoding转变成utf-8
data=f.read()
print(data)
f.close()

2、在Python

#1. 打开文件,得到文件句柄并赋值给一个变量
f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r

#2. 通过句柄对文件进行操作
data=f.read()

#3. 关闭文件
f.close()

 

3、f = open('file.txt','r')的过程分析

#1、由应用程序向操作系统发起系统调用open(...)
#2、操作系统打开该文件,并返回一个文件句柄给应用程序
#3、应用程序将文件句柄赋值给变量f

二、打开文件的模式

文件句柄 = open('文件路径','模式')
#1、打开文件的模式有(默认文本模式)
r  ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
w ,只写模式【不可读,文件不存在则创建,存在则清空内容】
a , 追加模式【不可读,不存在则创建,存在则只追加内容】

#2、对于非文本文件,我们只能使用b模式,'b'表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jpg格式、视频文件的avi格式)
rb
wb
ab
注意:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

#3、了解部分
"+" 表示可以同时读写某个文件
r+:读写【可读,可写】
w+:写读【可读,可写】
a+:写读【可读,可写】

x,只写模式【不可读;不存在则创建,存在则报错】
x+ ,写读【可读,可写】
xb

 

三、操作文件的方法

文件处理常用的读操作:

# f=open('朱锐',encoding='utf-8')
# data=f.read()
# print(data)
# f.close()

#打开文件的模式(r w a)
# f=open('朱锐','r',encoding='utf-8')
# # data=f.read()
# # print(data)
# print(f.readable()) #判断文件是否是读的处理方式
#
# f=open('朱锐','w',encoding='utf-8')
# # data=f.read()
# # print(data)
# print(f.writable()) #判断文件是否是写的处理方式

file=open('readline',encoding='utf-8')
print('第1行',file.readline(),end='') #后面加end为空,取消换行
print('第2行',file.readline())
print('第3行',file.readline())
print('第4行',file.readline())
print('第5行',file.readline())
print('第6行',file.readline())
print('第7行',file.readline())
print('第8行',file.readline())
print('第9行',file.readline())
输出结果:
C:\Python35\python3.exe G:/python_s3/day16/文件处理.py
第1行 111111111111111111111
第2行 222222222222222222222

第3行 333333333333333333333

第4行 44444444444444444444

第5行 54545

第6行 454564641111111111111

第7行 333333333333343532236236

文件处理写操作:

f=open('朱锐','w',encoding='utf8')
f.write('23456789\n')
f.write('1233489087766\n')
f.write('33334444333\n')
f.write('1233\n')
f.writelines(['555\n','6666\n']) #文件内容只能是字符串,只能写字符串
f.write(3)
f.close()

文件处理追加操作:

f=open('朱锐','a',encoding='utf-8')
f.write('写到文件最后')

文件处理其他模式操作:

文件处理其他操作:
f=open('xxx','r+',encoding='gbk')
# data=f.read()
# print(data)
# f.write('123sb')



f.write('sb')


#文件修改
src_f=open('xxx','r',encoding='gbk')
data=src_f.readlines()
src_f.close()

# for i in data:
#     print(i)
print(data)
dst_f=open('xxx','w',encoding='gbk')
# dst_f.writelines(data)
dst_f.write(data[0])
dst_f.close()

with open('a.txt','w') as f: #with方式打开文件,不用再加close关闭
    f.write('1111\n')


src_f=open('xxx','r',encoding='gbk')
dst_f=open('xxx','w',encoding='gbk')
with open('xxx','r',encoding='gbk') as src_f,\
        open('xxx_new','w',encoding='gbk') as dst_f:
    data=src_f.read()
    dst_f.write(data)

f=open('a.txt')
print(f.encoding) #查看文件编码

 

四、文件内光标移动

 1、read(3):

1、文件打开方式为文本模式,代表读取3个字符
2、文件打开方式为b模式,代表读取3个字符

2、其余的文件内光标移动都是以字节为单位,如:seek,tell,truncate

注意:
1、seek有三种方式0,1,2 其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的

2、truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果
#基于seek实现tail -f功能
import time with open('test','rb') as f: f.seek(0,2) while True: line=f.readline() if line: print(line.decode('utf-8')) else: time.sleep(0.2)
f=open('日志文件','rb')
for i in f:
    offs=-10
    while True:
        f.seek(offs,2)
        data=f.readlines()
        if len(data) > 1:
            print('文件的最后一行是%s' %(data[-1].decode('utf-8')))
            break
        offs*=2

 

--结束END--

本文标题: Python之路【第五篇】:Python

本文链接: https://lsjlt.com/news/181860.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python之路【第五篇】:Python
    一、文件操作 1、介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分。 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的...
    99+
    2023-01-31
    之路 第五篇 Python
  • Python之路【第八篇】:Python
    一、模块和包 模块(module)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较...
    99+
    2023-01-31
    之路 第八篇 Python
  • Python之路【第六篇】:Python
    一、迭代器 1、迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 代码如下: while True: print('==========&...
    99+
    2023-01-31
    之路 第六篇 Python
  • Python之路【第七篇】:Python
    一、装饰器 1、装饰器的概念 #装饰器定义:本质就是函数,功能是为其他函数添加附加功能 二、装饰器需要遵循的原则 #原则: 1、不修改被修饰函数的源代码 2、不修改被修饰函数的调用方式 装饰器他人的器具,本事可以是任意可调用对象,被...
    99+
    2023-01-31
    之路 第七篇 Python
  • 【Python之旅】第五篇(三):Pyt
        前面的几个例子都是单线程的,下面再来说说多线程的。1.多线程模块    主要是socketserver模块,如下图示:2.多线程原理    如下图示说明:3.SockteServer例子说明服务器端:客户端:4.演示    还是以前...
    99+
    2023-01-31
    之旅 第五篇 Python
  • 【Python之旅】第五篇(一):Pyt
        只要和网络服务涉及的,就离不开Socket以及Socket编程,下面就说说Python Socket通信的基本原理。1.Socket    socket也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“...
    99+
    2023-01-31
    之旅 第五篇 Python
  • 【Python之旅】第五篇(二):Pyt
        前面第五篇(一)中的一个Socket例子其实就是单线程的,即Server端一次只能接受来自一个Client端的连接,为了更好的说明socket单线程和阻塞模式,下面对前面的例子做修改。1.单线程+阻塞+交互式    前面的例子是单线...
    99+
    2023-01-31
    之旅 第五篇 Python
  • Python之路,Python基础篇(第
    一、Python介绍: python的创始人为吉多·范罗苏姆(Guido van Rossum),俗称龟叔。在圣诞节期间为打发无聊而开发得语言。 Python是一门什么语言: Python是一门解释性的语言 Python的优缺点: Py...
    99+
    2023-01-31
    之路 基础 Python
  • 【Python之旅】第五篇(四):基于P
        还是继续延续篇五中前三节的例子,通过对代码的修修补补,把它改成一个可以在连接后就能在Client端执行Server端命令的程序,所以就有点类似于SSH连接程序了。    至于还是用前面的例子来改嘛,是因为上课也一直这么干,而且老师也...
    99+
    2023-01-31
    之旅 第五篇 Python
  • python学习 第五篇 flask
    #!/usr/bin/env python #coding:utf-8 from flask import Flask,request,render_template,redirect #request 里面包含一次网络请求所有的内容,所有...
    99+
    2023-01-31
    第五篇 python flask
  • Python成长之路第一篇(3)_初识字
    经过上章的学习我们已经了解到了列表可以通过索引来获取对应的值,在本章我们将学到通过名字来索引数据,这种结构的类型称之为映射(maooing),在Python中字典是唯一内建的映射类型,其中的值我们称之为键值对,也就是由(键,值)组成映射关系...
    99+
    2023-01-31
    第一篇 成长之路 Python
  • Python成长之路第二篇(3)_字典的
    字典的置函数用法(字典dict字典中的key不可以重复)class dict(object):"""dict() -> new empty dictionarydict(mapping) -> new dictionary in...
    99+
    2023-01-31
    字典 第二篇 成长之路
  • 菜鸟python之路-第五章(记录读书点
    1、数字类型 python支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数 。 创建数值对象并赋值 aint=1 along=-999999999999999L afloat=3.1415973434325 ac...
    99+
    2023-01-31
    菜鸟 之路 第五章
  • python之路 第一篇 编程语言简介及
    一 编程语言: 1.机器语言:直接用二进制编程,直接操作硬件。  优点:执行效率快  缺点:学习难度大,开发效率低 2.汇编语言:用英文标签来代替一串特定意义的二进制,直接操作硬件 优点:执行效率快,不如机器语言快 缺点:学习难...
    99+
    2023-01-30
    之路 第一篇 编程语言
  • python之路,Python基础篇3
    1、set 无序,不重复序列、可嵌套 2、函数 ==》 定义函数,函数体不执行,只有调用函数时,函数体才执行 1、def 2、名字 3、函数体 4、返回值 5、参数 普通参数 指定参数 默认参数 动态参数 ...
    99+
    2023-01-31
    之路 基础 python
  • python之路,Python基础篇2(
    一、.pyc是个什么鬼: pyc文件其实是PyCodeObject的一种持久化保存方式。 二、数据类型 1、数字: 2 是一个整数的例子。 长整数 不过是大一些的整数。 3.23和52.3E-4是浮点数的例子。E标记表示10的幂...
    99+
    2023-01-31
    之路 基础 python
  • python之路-基础篇
    python基础第一章1、python介绍python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  ...
    99+
    2023-01-31
    之路 基础 python
  • 【Python之旅】第三篇(三):Pyt
    说明:    Python的正则表达式功能强大,使用灵活,但由于目前对Python中正则表达式的使用和认识都比较浅,因此急于做笔记和总结显然是不可行的,因此,这里给出下面几篇不错的参考文档:1.较为详细的Python正则表达式功能介绍的文档...
    99+
    2023-01-31
    之旅 第三篇 Python
  • 【Python之旅】第四篇(一):Pyt
        有时候拿到一个程序接口,需要对其进行扩展,但是又不能修改原来接口的源代码,这时候就需要使用装饰器了。    有下面一个小程序,假如是别人提供给我们的调用接口:import time def sayHi():         tim...
    99+
    2023-01-31
    之旅 第四篇 Python
  • 【Python之旅】第四篇(二):Pyt
        在Python程序的执行过程中,难免会出现异常的情况,如果做的是跟用户交互的程序,当用户输入不可接受的内容时,在可预见的范围内,我们当然是希望可以给用户一些提示,而不是原来Python内置异常中的那些提示语句,毕竟那些语句只适合给程...
    99+
    2023-01-31
    之旅 第四篇 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作