Python文件操作函数用法实例详解

作者:Python探索牛 时间:2021-03-12 07:10:29 

这篇文章主要介绍了Python文件操作函数用法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

字符编码

二进制和字符之间的转换过程 --> 字符编码

ascii,gbk,shit,fuck 每个国家都有自己的编码方式

美国电脑内存中的编码方式为ascii ; 中国电脑内存中的编码方式为gbk , 美国电脑无法识别中国电脑写的程序 , 中国电脑无法识别美国电脑写的程序

现在硬盘中躺着 ascii/gbk/shit/fuck 编码的文件, 他们的编码格式已经无法修改了, 所以内存中出现unicode编码, 内存中的unicode编码方式可以识别 ascii/gbk/shit/fuck 编码的文件

用unicode编码方式运行了 ascii/gbk/shit/fuck 编码的文件, 最后还是要装入硬盘, 装入硬盘早期用unicode存进去,但是 他在识别ascii的时候, 会把8位数字转换成16位数字存入硬盘, 浪费空间, 所以出现了utf8(与unicode对应,并且压缩unicode编码的字符)

utf8 能识别其他国家的编码,只识别unicode, utf8目前还不能放在内存,. 但是现在写的代码都是utf8, 历史遗留ascii/gbk/shit/fuck 编码的文件迟早消失/淘汰,要么被转换成utf8格式.所以迟早有一天内存中也是utf8.

python2 和 python3字符编码的区别

  • 打开python解释器

  • python解释器相当于文本编辑器,读取二进制转化为普通字符 a = 1

  • 对转化后的普通字符进行解释(定义变量就要新开辟内存空间存放变量)

python2

用文件指定的编码方式存储定以后的变量

python3

用unicode编码方式存储定以后的变量

以后写文件以什么格式存储,就以什么格式读取

文件的 三种打开方式

  • r: 只读 read

  • w:只写 write 清空后写入(文件不存在自动创建)

  • a:追加(文件不存在自动创建)

文本模式:t

二进制模式:b

t/b无法单独使用,只能和r/w/a一起使用

with管理文件上下文

with open() as f: # 自动关闭

一、文件的两种方式

文件的数据是存放于硬盘上的,因而只存在覆盖,不存在修改这么一说,我们平时看到饿的修改文件,都是模拟出来的效果,具体的说有两种实现方式。

1.1 方式一

将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)。


import os

with open('37r.txt') as fr, \
   open('37r_swap.txt', 'w') as fw:
 data = fr.read() # 全部读入内存,如果文件很大,会很卡
 data = data.replace('tank', 'tankSB') # 在内存中完成修改

fw.write(data) # 新文件一次性写入原文件内容

# 删除原文件
os.remove('37r.txt')
# 重命名新文件名为原文件名
os.rename('37r_swap.txt', '37r.txt')
print('done...')

1.2 方式二

将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件。


import os
with open('37r.txt') as fr,\
   open('37r_swap.txt', 'w') as fw:
 # 循环读取文件内容,逐行修改
 for line in fr:
   line = line.replace('jason', 'jasonSB')
   # 新文件写入原文件修改后内容
   fw.write(line)
os.remove('37r.txt')
os.rename('37r_swap.txt', '37r.txt')
print('done...')

总而言之,修改文件内容的思路为:以读的方式打开原文件,以写的方式打开一个新的文件,把原文件的内容进行修改,然后写入新文件,之后利用os模块的方法,把原文件删除,重命名新文件为原文件名,达到以假乱真的目的。

二、定义函数的三种方式

2.1 无参函数

定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量名

在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。

如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。


def func():
 print('hello nick')
func() # hello nick

2.2 有参函数

在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,意味着调用时也必须传入参数。

如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数。


def sum_self(x, y):
 """求和"""
 res = x+y
 print(res)
sum_self(1,2) # 3

2.3 空函数

当你只知道你需要实现某个功能,但不知道该如何用代码实现时,你可以暂时写个空函数,然后先实现其他的功能。


def func():
 pass

来源:https://www.cnblogs.com/djdjdj123/p/12078293.html

标签:Python,文件,操作,函数
0
投稿

猜你喜欢

  • python提取页面内url列表的方法

    2022-12-26 15:29:27
  • matplotlib阶梯图的实现(step())

    2023-03-18 23:29:54
  • pandas 中对特征进行硬编码和onehot编码的实现

    2021-03-26 22:37:49
  • python3实现全角和半角字符转换的方法示例

    2021-06-16 13:08:36
  • Android中Okhttp3实现上传多张图片同时传递参数

    2024-05-10 14:06:20
  • Mozilla专有JavaScript扩展之一(__noSuchMethod__)

    2009-03-01 12:45:00
  • 将python代码和注释分离的方法

    2022-04-06 12:04:50
  • CSS背景属性5个应用实例

    2009-09-13 20:54:00
  • Python3 获取一大段文本之间两个关键字之间的内容方法

    2022-01-17 15:03:31
  • Python爬虫实现抓取京东店铺信息及下载图片功能示例

    2022-11-26 21:02:44
  • Asp中Server.ScriptTimeOut属性需要注意的一点

    2011-04-27 08:41:00
  • 超详细教你怎么升级Mysql的版本

    2024-01-28 02:36:20
  • JavaScript实现彩虹文字效果的方法

    2024-06-05 09:34:41
  • JavaScript实现QQ聊天室功能

    2024-04-19 09:47:53
  • 使用Python绘制三种概率曲线详解

    2022-07-27 00:21:01
  • Python跨文件全局变量的使用技巧

    2023-09-17 00:00:31
  • Golang如何构造最佳随机密码详解

    2024-05-05 09:29:37
  • python中subplot大小的设置步骤

    2021-07-30 08:59:37
  • 如何用Pytorch搭建一个房价预测模型

    2022-12-16 17:09:21
  • python_opencv用线段画封闭矩形的实例

    2022-05-04 19:07:59
  • asp之家 网络编程 m.aspxhome.com