python文件

编码,常用的有ASCII,unicode,utf-8等

>>> st='东风冷雪'
>>> st
'东风冷雪'
>>> st1=st.encode("utf-8")
>>> st1
b'\xe4\xb8\x9c\xe9\xa3\x8e\xe5\x86\xb7\xe9\x9b\xaa'
>>> st1.decode("utf-8")
'东风冷雪'

文本文件 是基于字符编码的文件,常见的有ASCII,和Unicode编码等,其文件的内容就是字符。

二进制文件是基于值编码的文件,存储的是二进制数据,就是数据是按照其占用的字节数来存放的。

文件的打开与关闭 文件对象=open(filename,modern); 文件对象.close();

r只读方式打开; w以写的方式打开,若文件存在,则覆盖原来的文件 a以写的方式打开,写入内容追加在文章末尾。

import os
os.chdir("D:\\")
f=open("test.txt",'rb+')
print(f.read().decode("utf-8"))
f.close()
hello 东风冷雪
life is short.
i use python

定位 通过open语句创建了一个文件对象,读写指针会定位在文件头部,即最左边开始的位置,然后从左到右循序访问。

seek(偏移值,起始位置)函数,可以实现文件随意读写。 起始位置:0文件开始,1当前文件指针,2 文件末尾

import os
os.chdir("E:\\")
f=open("test.txt",'w+')
print(f.read())
f.write(" 人生苦短,我用python")
f.seek(1)
print(f.read())
f.close()   
人生苦短,我用python

文件的读,取,追加。 f.read(size) 返回一个字符串,为size长度,如果省略,则是整个文本。

import os
f=open("E:\\test.txt",'r+')
str=f.read()
print("f={0},str={1}".format(f,str))
f=<_io.TextIOWrapper name='E:\\test.txt' mode='r+' encoding='cp936'>,str=好好学习,天天向上。
good good study。
day day up。
import os
f=open("E:\\test.txt",'r+')
str=f.read()
print(str)
str1=f.read()
print("str1=",str1)
f.seek(0)
str2=f.read(1)
print("str1=",str2)
f.close()
好好学习,天天向上。
good good study。
day day up。
str1= 
str1= 好

f.readline()方法 ,返回一个字符串,为当前的一行。换行符字符串末尾。 如果达到末尾则还回一个空字符串,如果是一个空行,返回'\n'

import os
f=open("E:\\test.txt",'r+')
str1=f.readline()
print("str1=",str1)
str2=f.readline()
print("str2=",str2)
f.close()
str1= 好好学习,天天向上。
str2= good good study。

利用: 如果达到末尾则还回一个空字符串,循环读取,文件内容。

import os
f=open("E:\\test.txt",'r+')
line=f.readline()
while  line !="":
    print(line)
    line=f.readline()
f.close()
好好学习,天天向上。
good good study。
day day up。

f.readlines()方法,返回一个列表,列表的每一个字符串元素对应文件的每行。

import os
f=open("E:\\test.txt",'r+')
lt=f.readlines()
print(lt)
print("-------------")
for fl in range(len(lt)):
    print(lt[fl])
f.close()   
['好好学习,天天向上。\n', 'good good study。\n', 'day day up。']
-------------
好好学习,天天向上。
good good study。
day day up。

将一个文件数据写入列表 list=list(open(filename))

>>> lt=list(open("E:\\test.txt",'r+'))
>>> lt
['好好学习,天天向上。\n', 'good good study。\n', 'day day up。']
>>> len(lt)
3

还有许多细节,省略了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏www.96php.cn

Discuz!X数据库函数操作命令大全

函数 功能DB::table($tablename)获取正确带前缀的表名,转换数据库句柄DB::delete($tablename, 条件,条数限制)删除表中的...

40980
来自专栏JetpropelledSnake

SQL学习之SQL注入学习总结

22140
来自专栏余林丰

单例模式

单例模式,顾名思义,在程序运行时有且仅有一个实例存在。最常见的一个应用场景就是网站访问量的计数器,试想如果允许创建多个实例,那还怎么计数,这个时候就得创建有且仅...

21550
来自专栏Java架构沉思录

聊聊设计模式之模板方法模式

导语 模板方法模式是指在父类中定义好算法的骨架,而把具体的算法步骤交给子类去实现的一种设计模式。模板方式模式可以在不改变算法整体骨架的情况下,对算法的某些步骤...

378110
来自专栏王亚昌的专栏

类静态指针的申请和释放

     如果类有一个静态成员指针变量,在进程中执行new或malloc操作分配了内存,进程退出前并不需要调用new或malloc,因为系统会自动进行释放。但这...

12520
来自专栏java架构师

【SQL Server】系统学习之一:表表达式

本节讨论的相关内容包括:视图、派生表、CTE、内联表值函数 场景:如果要查询一组数据(例如聚合数据,也就是几个表聚合在一起的数据),这些数据并未在数据库中以表的...

33860
来自专栏技巅

GlusterFS之内存池(mem-pool)实现原理及代码详解

17150
来自专栏维C果糖

史上最简单的 MySQL 教程(五)「SQL 基本操作 之 表操作」

根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作、表(字段)操作和数据操作。

357130
来自专栏钟绍威的专栏

初学File类

对File类的基本方法的理解 今天刚开始学了File类 一开始看思想编程看得迷迷糊糊的,之后受不了了,直接去看API文档 归纳: File->jav...

205100
来自专栏魏琼东

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 数据关系映射ORM

      上一遍我介绍了AgileEAS.NET中统计的数据访问,本文我将来介绍AgileEAS.NET中的ORM实现思路。关于ORM的概念和介绍,我在此就不...

21980

扫码关注云+社区

领取腾讯云代金券