热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python——文件管理

 文件操作分为读、写、修改一、读文件fopen(file'D:工作日常兼职白领学生空姐模特护士联系方式.txt',mode'r',encoding&

python

 文件操作分为读、写、修改

一、读文件

f = open(file='D:/工作日常/兼职白领学生空姐模特护士联系方式.txt',mode='r',encoding='utf-8')

data = f.read() # 表示读取所有内容,内容是已经转换完毕的字符串。

f.close() # 表示关闭文件

file='D:/工作日常/兼职白领学生空姐模特护士联系方式.txt' 表示文件路径

mode='r'  表示读取模式。有r,rb模式,在这两种模式下,只能读,不能写。rb表示以二进制模式读取文件,直接以bytes格式将数据读到内存,如果想查看内容,还需要手动decode,因此在文件打开阶段,不需要指定编码。

encoding='utf-8'  表示以何种编码规则读文件。此处的encoding必须和文件在保存时设置的编码相一致,不然“断句”会不准确从而造成乱码。

假如你不知道你要处理的文件是什么编码可怎么办呢?

安装第三方工具:pip install chardet

import chardet

f = open('log',mode='rb')

data = f.read()

f.close()

result = chardet.detect(data)

print(result)

 输出:

{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}

可以看出该文件是以GB2312编码的。

文件循环:

f = open("兼职白领学生空姐模特护士联系方式.txt",'r',encoding="utf-8")

for line in f:

print(line)

f.close()

 二、写文件

f = open(file='D:/工作日常/兼职白领学生空姐模特护士联系方式.txt',mode='w',encoding='utf-8') # 打开文件

f.write('Jack 22 IT 134222xxxx') # 写入内容

f.close()

 写模式包括w,wb,只能写,不能读。在写入内容之前,如果文件不存在,将自动 创建一个新文件,如果文件存在,将清空文件,再写入新内容。wb表示以二进制的模式写入文件。

三、追加(a,ab)

一种不清空文件,默认将内容追加到文件尾部的方式。有a,ab两种模式。

f = open("兼职白领学生空姐模特护士联系方式.txt",'a',encoding="gbk")

f.write("\n杜姗姗 北京 167 49 13324523342")

f.close()

 四、读写模式(r+)

既可以读又可以写,默认将内容追加到文件尾部。

f = open("兼职白领学生空姐模特护士联系方式.txt",'r+',encoding="gbk")

data = f.read() #可以读内容

print(data)

f.write("\nblack girl 河北 167 50 13542342233") #可以写

f.close()

五、写读模式(w+)

先写后读,在写之前会将文件清空,若不存在改文件,会自动创建文件,与w相比只是多了一个读的功能。

f = open("兼职白领学生空姐模特护士联系方式.txt",'w+',encoding="gbk")

data = f.read()

print(data)

f.write("\nnewline 1哈哈")

f.write("\nnewline 2哈哈")

print("content",f.read())

f.close()

 六、文件其他常用操作

fileno():返回文件句柄在内核中的索引值

flush():把文件从内存里强制刷新到硬盘上

readable():判断是否可读

writable():判断是否可写

readline():只读一行,遇到\r 或者\n为止  返回一个字符串格式

readlines():读取所有行  返回一个列表,列表元素是每行的内容

seek():把操作文件的光标移到指定位置,seek的长度是按字节计算的。

tell():返回当前文件操作光标的位置,按字节计算

truncate():按指定长度截断文件(指定长度的话,就从指定位置开始删掉之后内容,不指定长度就从当前位置到文件尾部的内容全部删除)

f = open("test_file", "r+", encoding="utf-8")

print(f.tell())

f.seek(27) # 将光标移到第27个字节的位置

f.truncate() # 截掉第27个字节之后的内容

f.close()

 七、文件修改

# 将名为“李云”的用户修改为“张山”

f_old = open("mail_list", "r", encoding="utf-8")

f_new = open("mail_list_new", "w", encoding="utf-8") # 创建一个新文件

old_str = "李云"

new_str = "张山"

for line in f_old:

if old_str in line:

new_line = line.replace(old_str, new_str) # 替换

else:

new_line = line

f_new.write(new_line) # 写入新的内容

f_new.close()

f_old.close()

View Code

此法,是新建一个新文件的方式,边从旧文件读内容,然后修改,然后再写入新文件。
上面的代码,会生成一个修改后的新文件 ,原文件不动,若想覆盖原文件,将新文件名替换掉旧文件名就行:

# 将名为“李云”的用户修改为“张山”

import os

f_old = open("mail_list", "r", encoding="utf-8")

f_new = open("mail_list_new", "w", encoding="utf-8") # 创建一个新文件

old_str = "李云"

new_str = "张山"

for line in f_old:

if old_str in line:

new_line = line.replace(old_str, new_str) # 替换

else:

new_line = line

f_new.write(new_line) # 写入新的内容

f_new.close()

f_old.close()

os.replace("mail_list_new", "mail_list") # 新文件名改为旧文件名

View Code


推荐阅读
  • 浅谈Python3中打开文件的方式(With open)
    浅谈Python3中打开文件的方式(With open)-目录0.背景知识1.常规方式:读取文件-----open()2.推荐方式:读取文件-----WithOpen1).读取方式 ... [详细]
  • Python3怎么获取文件属性
    这篇文章给大家分享的是有关Python3怎么获取文件属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。os.stat(path ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 笔记day2 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • php支持中文文件名
    2019独角兽企业重金招聘Python工程师标准大家可能遇到过上传中文文件名的文件,或者读取中文目录时不能读取,出现错误的情况这种情况是因为php自动将中文字符转成了utf8 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文总结了解决python文件读写乱码问题的方法。其中包括错误的打开方式和正确的打开方式,并提供了相应的代码示例。建议在进行写入操作后先将文件关闭,然后再打开,最后再读取文件。若文件编码是utf-8,则需要在读取文件时添加decode('utf-8')。这样操作可以避免在打开记事本时出现乱码问题。 ... [详细]
  • 准备gitanaconda3Step1:下载安装git这里是windows下git安装:需要注意的是在这里不选择第一个,要选择第二个,在windows下也可以。然后跟着默认选择就可 ... [详细]
  • python教程分享Python获取时光网电影数据的实例代码
    一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的”寿命&r ... [详细]
  • 关于ModuleNotFoundError: No module named 'urllib3'解决
    1.执行代码时报错错误信息:ModuleNotFoundError:Nomodulenamed'urllib3'错误截图:2.解决办法1通过如下命令安装urllib3模块:pipins ... [详细]
  • 环境准备—之—linux下安装python3和pip3
    转自上海悠悠https:www.cnblogs.comyoyoketangp10195102.html前言centos7自带有python,但是却是python2版本的 ... [详细]
  • 1.下载git和Pycharm并安装2.打开Pycharm,点击file-->DefaultSettins-->VersionControl-->Git然后在 ... [详细]
author-avatar
haodan1006
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有