文件基本处理

1 打开文件,将文件句柄赋值给一个变量

2 拿句柄对文件进行操作

3 关闭文件

将一个文件第一行写道另外一个文件

f = open("test","r",encoding="utf-8") # open找的是系统的编码
x = f.readlines()
f.close()
f1 = open("test1","w",encoding="utf-8")
f1.write(x[0])
f1.close()

 

with open("test","r",encoding="utf-8") as f,\open("test1","w",encoding="utf-8") as f1:  #with open不用close()x = f.read()f1.write(x)

 

北京182
iloveyoubeijing111
test
with open("test","rb") as f :#b的方式不能用encodingdata= f.read()print(data)

 

b'\xe5\x8c\x97\xe4\xba\xac182\r\niloveyoubeijing111\r\n'
result

\r\n代表回车,字母和数字可以直接显示,汉字用2进制代替,文件是utf-8格式,所以一个汉字三个字节

print(data.decode("utf-8"))

 

北京182
iloveyoubeijing111
result

 

with open("test","wb") as f:x = "我爱北京天安门"f.write(bytes(x,encoding="utf-8"))#f.write(bytes(x.encode("utf-8")))#效果一样

 f.encoding表示的是文件打开的编码,如果不知道文件编码是什么,不知道怎么打开,可以用latin-1试一下

我爱北京天安门我爱北京天安门
你好么
我很好
test
with open("test","r",encoding="utf-8") as f:print(f.readlines())  #windows上回车\r\n占2个字符。python默认处理显示成\nwith open("test","r",encoding="utf-8",newline="") as f:print(f.readlines())  #windows上回车\r\n占2个字符。python默认处理显示成\n

 

['我爱北京天安门我爱北京天安门\n', '你好么\n', '我很好']
['我爱北京天安门我爱北京天安门\r\n', '你好么\r\n', '我很好']
Result

 

with open("test","r",encoding="utf-8") as f:f.readline()print(f.tell())  #光标位置处,即移动的字节处f.readline()print(f.tell()) 

 

# 3*14+2=44
# 3*3+2+44=55
Result

 

f.seek(3)           #移动光标到第3个字节之后,print(f.tell())print(f.readline())  #如果移动的不是3的整数倍,会报错,因为utf-8无法解码

 

3
爱北京天安门我爱北京天安门
Result

 

print(f.read(4))     #read读的是字符
f.truncate(5)        #截取0-5字节并保留,所以一定要是w模式 r+.a+,w可以,w+不行
print(f.readlines())

 seek(a,0)从头开始seek,seek(a,1)从当前光标seek,seek(a,2)从后向前seek,2的时候a需要是负数,文件打开模式需要带b

print last sentence of the file
with open("test","rb") as f:offsets = -3n = 0while True:f.seek(offsets,2)data = f.readlines()if len(data)>1:                       #如果取到2行以上print("这是最后一行:" ,data[-1].decode("utf-8"))  #data列表里是二进制,需要解码breakoffsets*=2
第一行
第二行
第三行
第四行
最后一行
test
这是最后一行: 最后一行
result

 

转载于:https://www.cnblogs.com/telma/p/10510355.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码审查:程序员内炼之道

摘要:“关注并弄清楚桥梁修建细节,否则你建起来的桥梁有可能坍塌。”代码审查更重要的是一种技术分享或者代码共享。程序员如何提升自我修炼之道,欢迎来支招。 代码审查更重要的是一种技术分享或者代码共享。在审查过程中,通过被…

排序代码(python,c++) 及 基本算法复杂度

0.导语 本节为手撕代码系列之第一弹,主要来手撕排序算法,主要包括以下几大排序算法: 直接插入排序 冒泡排序 选择排序 快速排序 希尔排序 堆排序 归并排序 1.直接插入排序 【算法思想】 每一步将一个待排序的记录,插入到前面…

TCP/IP四层模型与OSI参考模型

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 TCP/IP四层模型: 1.链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算…

还驾驭不了4核? 别人已模拟出百万核心上的并行

摘要:不管是台式机还是笔记本,四核双核都已经不是新鲜的事了。计算机领域的你可能已经认识到了给电脑选配4核的处理器完全是一种浪费,因为大多数的程序都不支持多核心的并行处理。然而斯坦福的计算机科学家最近公布,他们已经模拟出…

Django内置权限扩展案例

当Django的内置权限无法满足需求的时候就自己扩展吧~ 背景介绍 overmind项目使用了Django内置的权限系统,Django内置权限系统基于model层做控制,新的model创建后会默认新建三个权限,分别为:add、change、delete,如果给…

Flutter Mac iOS 环境配置

官方文档:flutter.io/docs/get-st… 1.需要的命令行工具 bash curl git 2.x mkdir rm unzip which 2.SDK下载地址 flutter_macos_v1.0.0-stable.zip storage.googleapis.com/flutter_inf… 3.解压Flutter SDK cd ~/Flutter/SDK $ unzip ~/Downloads/flutter_macos_v…

IntelliJ IDEA中新建JAVA WEB项目、maven项目

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 在IntelliJ IDEA 中新建一个Web应用项目。 1、 在主界面顶部菜单栏依次“File”-"New"-"Project..." 2、在对话框中…

S/4HANA业务角色概览之订单到收款篇

2019独角兽企业重金招聘Python工程师标准>>> 大家好我叫Sean Zhang,中文名张正永。目前在S/4HANA产品研发部门任职产品经理,而这一阶段要从2017年算起,而在那之前接触更多还是技术类的,比如做过iOS、HANA、ABAP、UI5等…

ItelliJ IDEA开发工具使用—创建一个web项目

转自:https://blog.csdn.net/wangyang1354/article/details/50452806概念需要明确一下IDEA中的项目(project)与eclipse中的项目(project)是不同的概念,IDEA的project 相当于之前eclipse的workspace,IDEA的M…

极客无极限 一行HTML5代码引发的创意大爆炸

摘要:一行HTML5代码能做什么?国外开发者Jose Jesus Perez Aguinaga写了一行HTML5代码的文本编辑器。这件事在分享到Code Wall、Hacker News之后,引起了众多开发者的注意,纷纷发表了自己的创意。 这是最初的HTML5代码,它…

DOCKER windows 7 详细安装教程

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 DOCKER windows安装 DOCKER windows安装 1.下载程序包2. 设置环境变量3. 启动DOCKERT4. 分析start.sh5. 利用SSH工具管理6. 下载镜像 6.1…

芝麻信用免押金成趋势 报告称租赁经济有望突破10万亿元

中新网1月16日电 “很多物品都是租来的,但生活不是。”如今,越来越多的年轻人选择了“租”生活,从房子到车子,从服饰到电脑,甚至玩具、婴儿车,全都可以租用,租赁已成为当下年轻人追求品质生活的…

开发者成功学:扔掉你那些很sexy的想法

摘要:在开发者的世界里,开发iPhone应用并不像表面那么光鲜,收支不成正比是常有之事,劳心劳力开发的应用无人问津更是屡见不鲜。走出了开发的一小步却难以迈出销售推广上的一大步,究竟如何才能将应用卖出去并获取利润&a…

html-body相关标签

一 字体标签 字体标签包含&#xff1a;h1~h6、<font>、<u>、<b>、<strong><em>、<sup>、<sub> 标题 标题使用<h1>至<h6>标签进行定义。<h1>定义最大的标题&#xff0c;<h6>定义最小的标题。具有align属性&a…

CentOS上安装Docker (图解)

更简单的办法&#xff1a;三分钟装好 Docker ( 图解&#xff09; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 // 用上面那个办法吧&#xff0c;简单多了&#xff0c;下面这个方法看看…

Uber提出有创造力的POET:自行开发更困难环境和解决方案

近日&#xff0c;Uber 发文介绍了一种开放式方法 POET&#xff08;Paired Open-Ended Trailblazer&#xff09;&#xff0c;可自行开发难度递增的环境及其解决方案&#xff0c;还可以实现不同环境中的智能体迁移&#xff0c;促进进化。Uber AI 实验室注重开放性&#xff08;ope…

C语言编译过程总结详解

源文&#xff1a;http://bbs.dzsc.com/space/viewspacepost.aspx?postid76976 C语言的编译链接过程要把我们编写的一个c程序&#xff08;源代码&#xff09;转换成可以在硬件上运行的程序&#xff08;可执行代码&#xff09;&#xff0c;需要进行编译和链接。编译就是把文本形…

promise之我见

在我们平时的方法中有很多方法是promise封装的&#xff0c; 有些函数后边跟的then和catch 就是promise的方法&#xff0c;先看一下pormise的特点 &#xff08;1&#xff09;对象的状态不受外界影响。Promise对象代表一个异步操作&#xff0c;有三种状态&#xff1a;pending&…

CPP虚析构函数

#include<iostream> using namespace std;class base {public:base(){};virtual ~base(){}; };// 在类声明中声明纯虚析构函数 //base::~base() {}class father: public base {public:~father(){cout << "father" << endl;} };int main() {base* a…

idea 新建springboot 的 web 项目

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 IDAE中新建web项目见&#xff1a;IntelliJ IDEA中新建JAVA WEB项目、maven项目 默认已有一个 maven 的 web 项目&#xff1a;gentle --…