Day05 (黑客成长日记) 文件操作系列
文件操作:
1.以什么编码方式输出,就以什么编码方式打开
f = open('d:\文件操作.txt',mode='r',encoding='GB2312') G = f.read() print(G) f.close()
操作方式:只读,只写,追加,读写,写读
只读:mode = ‘r’
mode = ‘rb’,输出bytes类型,不用添加encoding
f = open('day03.py',mode='rb')
g = f.read()
print(g)
文件中的数据类型是bytes,而输出后的类型是str
所以pycharm中的open函数进行了一个转换
2.只写:
没有该文件,则自动创建
f = open('day09练习',mode = 'w',encoding= 'utf-8')
f.write('加油')
f.close()
这里我用的是相对路径,也可以用绝对路径进行准确创建。
内容的话:会先将原文件的内容删除,后添加write里面的内容。
3.追加:
将只写中的mode改为a:
f = open('day09练习',mode='a',encoding='utf-8')
f.write('同思远')
f.close()
ab,rb,wb
f = open('day09练习',mode='ab')
g = f.write('tongsiyuan'.encode('utf-8'))
print(g)
利用字符串的操作方法 str.encode()将默认的Unicode改为UTF-8添加到文件
4.R+:
读写,r+:
f = open('day09练习',mode ='r+',encoding='utf-8')
print(f.read())
f.write('ddd')
f.write('ddd')
f.write('wdd')
R+的顺序一定是先读后写(写的次数不限)
如果先写再读,那么光标从最前面开始,写几个数据,则清除几个添加几个
python中的文件是不能修改的(python中没有提供修改文件的方法)
但是我们可以将源文件在python中修改后写入另外一个文件(命名为源文件),然后删除源文件,达到看似修改了得目的:
这里我们引入os模板:
os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小……
源文件:dream:fighting replace
be yourself
我们利用下面代码进行操作:
with open('dream',encoding= 'utf-8') as f ,open('dream.1','w',encoding='utf-8') as g :
for line in f:
if 'fighting replace' in line :
line = line.replace('fighting replace','Tsy')
g.write(line)
import os
os.remove('dream')
os.rename('dream.1','dream')
Day05 (黑客成长日记) 文件操作系列的更多相关文章
- C# 文件操作系列一
在.Net环境中,所有关于文件操作的类都在System.IO命名空间下,注:在修改文件时,安全性显得格外重要,但是本随笔不过多讲述安全性,这里假设我们有足够的权限. 1.管理文件系统 先通过一幅图来了 ...
- python学习日记(文件操作)
文件操作概述 计算机系统分为:操作系统,计算机硬件,应用程序. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序 ...
- Java文件操作系列[3]——使用jacob操作word文档
Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...
- Java文件操作系列[2]——使用JXL操作Excel文件
由于java流无法实现对Excel文件的读写操作,因此在项目中经常利用第三方开源的组件来实现.支持Excel文件操作的第三方开源组件主要有Apache的POI和开源社区的JXL. 总体来说,二者的区别 ...
- Windows phone开发之文件夹与文件操作系列(一)文件夹与文件操作
Windows phone7中文件的存储模式是独立的,即独立存储空间(IsolatedStorage).对文件夹与文件操作,需要借助IsolatedStorageFile类. IsolatedStor ...
- C#文件操作系列(一)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- Day12 (黑客成长日记) 函数
一.递归函数: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. #计算阶乘: def fact(n): if n == 1: return 1 return n ...
- Day09 (黑客成长日记) 爬虫入门
爬虫的基本流程: 发起请求通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应 获取响应内容如果服务器能正常响应,会得到一个Respon ...
- Day06 (黑客成长日记) 初识函数和返回值的作用
定义函数: 1.初识函数: 我们在学习字符串时,有这样的操作: li = 'tsy be ba bvake ' print(len(li)) 这样可以打印出li的长度,我们利用了python中的len ...
随机推荐
- STM32F401 外部中断误触发问题
现象:调试STM32F411低功耗的时候,使用的PA1做个唤醒源,发现在没有触发EXTI的时候,MCU居然被唤醒. 原因:PA1配置成EXTI(上拉输入),经常被误触发 解决方式:将PA1配置成浮空输 ...
- 初学python笔记----字符串
---恢复内容开始--- 1.在python中,用引号括起来的都是字符串,引号可以是单引号,也可以是双引号 2.修改字符串的大小写 3.字符串拼接用“+” 4.制表符("\t"), ...
- [TestNG] [WARN] Ignoring duplicate listener : org.testng.IDEATestNGRemoteListenerEx
1. 使用6.10,和6.14.3版本testng,出现多条warn信息 [TestNG] [WARN] Ignoring duplicate listener : org.testng.IDEATe ...
- pandas中的时间序列基础
重要的数据形式时间序列 datetime以毫秒形式存储日期和时间 now = datetime.now() now datetime.datetime(2018, 12, 18, 14, 18, 27 ...
- 微信小程序如何实现和微信客服通话?
微信小程序如何实现和微信客服通话?
- oracle 按表数据新增一行
在功能实现时,能尽量用一个sql语句直接实现业务逻辑的话,就不要去写C#代码,便于维护. 以下sql的逻辑是:给明细表新增一条数据,前提是传入的债券代码存在与债券表,否则不新增.此sql返回受影响行数 ...
- linux中service XX start与直接运行/usr/bin/xx start的区别
在linux想要运行启动一个服务有两种方法: 1,运行/etc/init.d/目录下的shell脚本,还可以有快捷方式,service *** start/ stop/restart /status, ...
- 4-19 css属性
1. margin 简写属性在一个声明中设置所有外边距属性.该属性可以有 1 到 4 个值. 说明 这个简写属性设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度. 块级元素的垂直相邻外边距会合 ...
- Ansible安装及OS规划
Ansible安装 1.以管理用户mtnsadmin连接服务器后下载安装包(-O表示将下载的文件存放到指定的文件夹下,同时重命名下载的文件) sudo wget -O /etc/yum.re ...
- 使用DOS命令无法启动MySQL
今天使用命令dos 命令 net start mysql 启动mysql的使用出现以下情况 无法正常启动mysql服务. 原因是: 启动dos命令窗口时的用户权限太低,无法正常使用 解决办法: 搜索c ...