作为一个Python初学者,我想通过写博客的方式来记录下来自己成长的过程,同时也分享一下自己学习到的知识。以下都是一个Python初学者对Python语言的一些浅见和个人理解。

#创建文件对象open()
‘’’
open()函数用于创建文件对象,基本语法格式如下:
open(文件名[,打开方式])
如果只是文件名,代表在当前目录下的文件。文件名可以录入全路径,比如:D:\a\b.txt。为了减少“\”的输入,可以使用原始字符串:r"d:\b.txt"
打开方式有如下几种:
模式 描述
r 读模式
w 写模式,如果文件不存在则创建;如果文件存在,则重新写内容
a 追加模式,如果文件不存在则创建;如果文件存在,则在文件末尾追加内容
b 二进制模式(可与其他模式组合使用)
+ 读、写模式(可与其他模式组合使用)
文本文件对象和二进制文件对象的创建:
如果我们没有增加模式b,则默认是创建文本文件对象,处理的基本单元是字符。如果是二进制模式b,则创建的是二进制文件对象,处理的基本单元是字节

文件的写入:
1.创建文件对象
2.写入数据
3.关闭文件对象
‘’’
#中文乱码问题:windows操作系统默认的编码是GBK,Linux操作系统默认的编码是UTF-8。当我们用open()时,调用的是操作系统打开的文件,默认的编码是GBK

f = open(r"b.txt","w")
f.write("世界和平\n中国力量\n")
f.close()

#write()/writelines()写入数据
‘’’

write():把字符串a写入文件中
writelines(b):把字符串列表写入文件中,不添加换行符
'''
f = open(r"d:\bb.txt", "w", encoding='utf-8')
s = ["小一\n", "小二\n", "小三\n"]
f.writelines(s)
f.close()

#close()关闭文件流
‘’’
由于文件底层是由操作系统控制,所以我们打开的文件对象必须显式调用close()方法关闭文件对象。当调用close()方法时,首先会把缓冲区数据写入文件
(也可以直接调用flush()方法),再关闭文件,释放文件对象
为了确保打开的文件对象正常关闭,一般结合异常机制的finally或者with关键字实现无论何种情况都能关闭打开的文件对象
‘’’

try:f = open(r"my01.txt","a")str = "haha"f.write(str)
except BaseException as e:print(e)
finally:f.close()

#with()语句(上下文管理器)
‘’’
with关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正常的关闭,并且可以在代码执行完毕后自动还原进入
该代码块时的现场
‘’’

s = ["China\n", "I love you\n", "Forever"]
with open(r"my02.txt", "w") as f:f.writelines(s)

#文本文件的读取
‘’’
文件的读取一般使用如下三个方法:
1.read([size])
从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件。读取到文件末尾,会返回空字符串
2.readline()
读取一行内容作为结果返回。读取到文件末尾,会返回空字符串
3.readlines()
文本文件中,每一行作为一个字符串存入列表中,返回该列表
‘’’
#读取一个文件的前4个字符

with open(r"my02.txt", "r", encoding="utf-8") as f:print(f.read(4))

#按行读取一个文件

with open(r"my02.txt", "r") as f:while True:fragment = f.readline()if not fragment:breakelse:print(fragment, end="")

#enumerate()函数和推导式生成列表 操作每行增加行号

with open("my02.txt", "r", encoding="utf-8") as f:lines = f.readlines()lines = [line.rstrip()+"#"+str(index+1)+"\n" for index, line in enumerate(lines)]  #推导式生成列表with open("my02.txt", "w", encoding="utf-8") as f:f.writelines(lines)

#二进制文件的读取或写入
‘’’
二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象,不过,我们需要指定二进制模式,从而创建出二进制文件对象。例如:
f = open(r"d:\a.txt",‘wb’) #可写的、重写模式的二进制文件对象
f = open(r"d:\a.txt",‘ab’) #可写的、追加模式的二进制文件对象
f = open(r"d:\a.txt",‘rb’) #可读的二进制文件对象
创建好二进制文件后,仍然可以使用write()、read()实现文件的读写操作
‘’’
#读取图片文件,实现文件的拷贝

with open("aa.JPG", 'rb') as f:with open('aa_copy.JPG', 'wb') as w:for line in f.readlines():w.write(line)
print("图片拷贝完成!")

#文件对象的常用属性和方法
‘’’
name():返回文件的名字
tell():返回文件指针的当前位置
seek(offset[,whence]):把文件指针移动到新的位置,offset表示相对于whence的位置:
offset:
off为正往结束方向移动,为负往开始方向移动
whence:不同的值代表不同的含义
0:从文件头开始计算(默认值)
1:从当前位置开始计算
2:从文件尾开始计算
‘’’

with open("my02.txt", 'r', encoding='utf-8') as f:print("文件名是:{0}".format(f.name))print(f.tell())print("读取的内容:{0}".format(str(f.readline())))print(f.tell())f.seek(4)print("读取的内容:{0}".format(str(f.readline())))

#使用pickle序列化
‘’’
序列化:指的是将对象转化成串行化数据形式,存储到硬盘或通过网络传输到其他地方。
反序列化:指相反的过程,将读取到的串行化数据转化成对象
我们可以使用pickle模块中的函数,实现序列化和反序列操作
pickle.dump(obj,file) #obj就是要被序列化的对象,file指的是存储的文件
pickle.load(file) #从file读取数据,反序列化成对象
‘’’

import picklea1 = "哈哈"
a2 = 234
a3 = [10,20,30,40]with open("data.dat", 'wb') as f:pickle.dump(a1, f)pickle.dump(a2, f)pickle.dump(a3, f)with open("data.dat", 'rb') as f:b1 = pickle.load(f)b2 = pickle.load(f)b3 = pickle.load(f)print(b1)print(b2)print(b3)

#CSV文件的操作
‘’’
csv是逗号分隔符文本格式,常用于数据交换、Excel文件和数据库数据的导入和导出。与Excel文件不同,CSV文件中:
1.值没有类型,所有值都是字符串
2.不能指定字体颜色等样式
3.没有多个工作表
4.不能嵌入图像图表
‘’’

import csvwith open("aaa.csv", 'r') as f:a_csv = csv.reader(f)for row in a_csv:print(row)with open("ee.csv", 'w') as f:b_csv = csv.writer(f)b_csv.writerow(["ID", "姓名", "年龄"])b_csv.writerow(["1001", "哈哈", "18"])c = [["1002", "嘻嘻", "6"],["1003", "呵呵", "8"]]b_csv.writerows()

Python---文件(file)相关推荐

  1. Python 文件(File) fileno() 方法

    和其它编程语言一样,Python 也具有操作文件(I/O)的能力,比如打开文件.读取和追加数据.插入和删除数据.关闭文件.删除文件等.本文主要介绍Python 文件(File) fileno() 方法 ...

  2. Python——文件(File)操作汇总

    文章目录 写在前面 1. Python文件的打开.读写.关闭 1.1 第一步:打开文件--open() 1.2 第二步:从文件中读取/写入数据 1.2.1 读数据 1.2.1.1 read() 1.2 ...

  3. windows执行python文件提示SyntaxError: Non-ASCII character ‘\xe9‘ in file 1.py on line 7, but no encoding d

    1.问题 windows环境下执行python文件,提示错误如下 SyntaxError: Non-ASCII character '\xe9' in file 1.py on line 7, but ...

  4. python文件拷贝到其他盘符_Python:文件操作技巧(File operation)

    import osimport shutilimport datetime''' 作用:将目录备份到其他路径. 实际效果: 假设给定目录"/media/data/programmer/pro ...

  5. python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法

    python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法: 最近学习文件读取和中文分词 ...

  6. esp8266 刷 MicroPython固件,并使用MicroPython File Uploader python文件上传工具上传python文件

    1.使用模块esp8266 2.进入固件官网:https://micropython.org/download/esp8266/ 3.将下载的esp8266-20220618-v1.19.1.bin放 ...

  7. python 文件中的中文错误,SyntaxError: Non-ASCII character '\xe6' in file

    python文件中,不管是是注释还是代码里出现了中文,乱码是文件编码的问题,把文件编码改为 UTF-8 ,编译没有错了. 运行时,还是会报错 :SyntaxError: Non-ASCII chara ...

  8. python之file文件写入操作

    视频地址: python之file文件写入操作 更多精彩内容,敬请扫码关注(HelloWorld小码农):

  9. 我在VScode学Python(Python的基本了解,数据类型,控制语句,文件File)

    开始学习Python了 Python的学习(持续更新) 前言 Python的介绍: 1)语言的发展: 2)特点: 缺点: 在VScode 配置: 安装Vscode: 在cmd中检测Python的存在 ...

  10. Python零基础速成班-第8讲-Python文件操作File IO、高级文件处理模块shutil、CSV、JSON、多线程基础

    Python零基础速成班-第8讲-Python文件操作File I&O.高级文件处理模块shutil.CSV.JSON.多线程基础 学习目标 文件操作File I/O 高级文件处理模块shut ...

最新文章

  1. Xshell链接远程服务器调用Pycharm的方法
  2. java long.max_value,Long + Long不大于Long.MAX_VALUE
  3. LSSS线性秘密共享方案详细构造方法与原理解释
  4. Git - git tag - 查看当前分支 tag 版本说明
  5. iOS实现简书的账号识别方式(正则表达式)
  6. javascript里new构造函数返回的值
  7. 图论最短路问题和最小生成树问题的区别
  8. 中央处理器(CPU)—— 控制器的功能和基本原理(微程序控制器(CU))
  9. BSS/SSID/BSSID、VAP和ESS
  10. 计算机技能比赛培训总结怎么写,技能大赛总结范文
  11. 误差条图各部分的代表意思_【小强视界】混凝土搅拌站计量误差原因分析及控制措施...
  12. 《UnityAPI.RenderTexture渲染纹理》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+RenderTexture+isCubemap+立钻哥哥++OK++)
  13. 一般家用路由器买多大的合适_家用路由器选多少M(兆)的合适【图】
  14. 体现SRP(单一职责原则)的两种模式——工厂模式和命令模式
  15. 爬取飞卢小说网的小说
  16. 万国觉醒服务器维护,《万国觉醒》怎么换服 更换服务器方法攻略
  17. easyrecovery2023最新版本电脑数据恢复软件特点介绍
  18. MySQL ERROR 1064 (42000)
  19. 遇见王沥川的人生感悟_遇见王沥川的人生感悟
  20. 手机系统应用STK 问题总结

热门文章

  1. 机器学习 (二) K近邻算法分析与实现
  2. [原创] 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(中)
  3. ansys用什么cpu_如何为ANSYS mechanical高性能计算选用更合理的硬件配置
  4. with app.app_context(). See the documentation for more information.
  5. Quick-Cocos2dx升级LuaJit版本
  6. ibm tivoli_使用适用于操作系统的Tivoli Access Manager保护DB2资源
  7. python-解析获取二维码内容
  8. Win10必做的性能优化
  9. 给想学UG编程的人几点建议
  10. PB反编译专家 PB Decompiler V2020.01.21 支持PB5.0到2019全部版本