Python基础(六) 基础文件操作

今天学习python下对文件的基础操作,主要从open函数、File对象的属性、文件定位、简单操作、举例说明几个步骤开始学习,下面开始进入今天的主题:

一、open函数介绍

open函数主要是打开一个文件,创建一个file对象,相关的方法可以调用它进行读写 。

语法格式如下:


1

2

3

file object = open(文件名,打开文件的模式)

file object  = with open (文件名,打开文件的模式) as 变量名

两种语法格式的不同在于下面这种方法不用输入f.close()函数来关闭文件。

在介绍文件打开模式之前介绍两个python的函数:

计算机中一个字节是8位,那么在不同的字符编码占用的字节不同,在计算机中为了节省内存空间,汉字一般是用16进制表示,

UTF-8:一个汉字占计算机的三个字节

GBK:一个汉字占两个字节

bytes():将字符串转换成字节类型


1

2

3

4

5

6

7

8

n = bytes("你好", encoding="utf-8")      #将字符串转换成utf-8的字节码

print(n)

n = bytes("你好", encoding="gbk")        #将字符串转换成gbk的字节码

print(n)

结果:

b‘\xe4\xbd\xa0\xe5\xa5\xbd‘

b‘\xc4\xe3\xba\xc3‘

str():可以将字节类型转换回字符串


1

2

3

4

5

new_str = str(bytes("你好", encoding="utf-8"), encoding="utf-8")

print(new_str)

结果:

你好

下面来看一下打开文件的模式:

二、File对象的属性和方法

      下面是file对象相关的所有属性的列表,举例说明这些属性的用法:


1

2

3

4

5

6

7

8

f = open(‘user.txt‘,‘a‘)

print("文件名:",f.name)

print("文件是否已关闭:",f.closed)

f.close()

结果:

文件名: user.txt

文件是否已关闭: False

      下面介绍一下file对象的方法

1,file.read()


1

2

3

4

5

6

f = open(‘user.txt‘,‘r‘)

print(f.read())                   # 从文件中读取出字符串

结果:

UserName=‘jack‘

PassWord=‘123456‘

2,file.readline()


1

2

3

4

5

f = open(‘user.txt‘,‘r‘)

print(f.readline())               #读取一行

结果:

UserName=‘jack‘

3,file.readlines()


1

2

3

4

5

6

7

8

9

10

11

12

13

14

f = open(‘user.txt‘,‘r‘)

print(f.readlines())       #把文件每一行作为一个list的一个成员,并返回这个list。

结果:

["UserName=‘jack‘\n", "PassWord=‘123456‘\n"]

f = open(‘user.txt‘,‘r‘)

for i in f.readlines():          #也可以通过循环调用readline()来实现的

    print(i)

结果:

UserName=‘jack‘

PassWord=‘123456‘

4,file.write()

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。注意:Write()方法不在字符串的结尾不添加换行符(‘\n‘):


1

2

3

4

5

6

7

8

f = open(‘user.txt‘,‘a‘)          #追加的模式打开文件

f.write("age:18\n")     

f.close()

结果:

UserName=‘jack‘

PassWord=‘123456‘

age:18

5,file.writelines()

用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表;

换行需要制定换行符 \n。


1

2

3

4

5

6

7

8

9

10

11

f = open(‘user.txt‘,‘a‘)

print("文件名:",f.name)

seq = ["age=19\n","sex=man\n"]

f.writelines(seq)

f.close()

结果:

UserName=‘jack‘

PassWord=‘123456‘

age=19

sex=man

6,file.flush()

刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。


1

2

3

4

f =open(‘user‘,‘r+‘)

f.write(‘123‘)

f.flush()                      #通过强制刷新,123已经写入到文件中

name = input(‘input:‘)         #在这会一直等待用户输入

7,file.truncate( [size] )

截取文件,截取的字节通过size指定,默认为当前文件位置。


1

2

3

4

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

f.seek(3)                     #将指针移动到第3个位置

f.truncate()                  #指针以后清空

f.close()

三、文件定位、重命名和删除文件

(一)、文件定位

file.tell() : 方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。

file.seek(offset [,from]): 方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

f = open("user.txt",‘r+‘)               #读写的模式打开文件

str = f.read(10)

print("读取的字符串是:",str)

 

position = f.tell()                     #找到当前指针位置

print("指针位置:",position)

 

position = f.seek(5,0)                  #将指针移动到从开头往后移动5个字节

str=f.read(10)

print(str)

f.close()

结果:

读取的字符串是: weibo.com.

指针位置: 10

.com.cn

(二)、重命名和删除文件

Python的os模块提供了执行文件处理操作的方法,比如重命名和删除文件。

rename()方法:rename()方法需要两个参数,当前的文件名和新文件名。


1

2

import os

os.rename("user.txt","test.txt")

remove()方法:删除文件,需要提供要删除的文件名作为参数。


1

2

import os

 os.remove("test.txt")            #删除已经存在的文件

     (三)、知识点拾遗

在python2.7以后with open() 可以同时打开两个文件,具体操作如下:


1

2

3

4

5

6

with open(‘user‘,‘r‘,encoding=‘utf-8‘) as f1,open(‘user1‘,‘w‘,encoding=‘utf-8‘)as f2:

    for line in f1:                                 #将f1一行一行的读取出来

        new_str=line.replace(‘haifeng‘,‘idx‘)       #替换其中的某个字符串

        f2.write(new_str)#                          #将替换好的文件写到新文件里

os.rename(‘user‘,‘user.bak‘)                        #备份旧文件

os.remove(‘user1‘,‘user‘)                           #发布新文件


1

2

3

4

5

6

7

8

9

10

11

12

f =open(‘user‘,‘r+‘)                                #以读写的方式打开文件

Name=input("input:")                                #获取用户输入

for i in f.readlines():                             #已列表的方式一行一行读取文件

    line = i.strip()                                #去除空格,空行

    last_line = line.split("=")                     #按=号分割成新列表

    if last_line[0] == ‘name‘:                      #判断如果是name的参数就行替换

        last_line[1] = str(Name)

        new_str = ‘=‘.join(last_line)               #将新列表转换成字符串

f.seek(0,0)                                         #将指针调到起始位置开始

f.write(new_str)                                    #写入写字符串

f.truncate()                                        #将多余的字符删除

f.close()                                           #关闭文件

推荐使用第一种方法进行文件内容的更新,基础的文件操作就介绍到这里。

时间: 2024-10-20 16:48:34

Python基础(六) 基础文件操作的相关文章

python字符串处理与文件操作

1.strip函数 strip是trim(裁剪)掉字符串两边的空格或字符.(lstrip/rstrip) 如: 空格 theString = ' abcdbcyesornoabcbacdd ' print theString.strip() abcdbcyesornoabcbacdd 字符 theString = 'abcdbcyesornoabcbacdd' print theString.strip('abcd') #去掉两端的abcd字符 yesorno 问题:如何去掉中间空格. theS

python文件基础之(文件操作)

在之前学习了python的列表.元组.集合等知识,接下来将python的文件相关的知识做一总结和分析. 一 open函数 在我们用word.excel.vim对文件操作时,肯定要先打开文件,同样在编程里面也是需要将文件打开,然后再对文件操作,操作完对文件进行关闭.文件打开使用open()函数,同时创建一个相关的对象. .基本语法: open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, clos

python学习笔记-(七)python基础--集合、文件操作&函数

本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: 1 2 3 4 >>> list_1 = [1,4,4,5,6,7,9,10] >>> list_1 =set(list_1) >>> print(list_1) {1, 4, 5, 6, 7, 9, 10} 2)关系测试:测试两组数据之间的关系,交集.并集.

自动化运维Python系列(三)之基础函数和文件操作

函数作用 增强代码的重用性和可读性 在没有使用函数编程之前,我们可能一直遵循的都是面向过程编程,即根据业务逻辑从上到下实现各个功能,这样的做的坏处是代码可读性不强,大量冗余代码,而且执行效率不高:有了函数后,我们就可以将多次使用到的相同代码模块放在单独的函数定义中,在任何想要调用它的地方随时调用,这就叫做函数式编程. 面向对象编程其实就是对函数进行再分类和封装,让开发"更快更好更强..." 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 函数的定义主要有如下要点:

Python——day3_基础1_集合,文件操作,字符编码与转码

集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时

Python学习之路(四):基础知识之文件操作

1.文件操作的函数 文件操作的函数大致为:f = open(文件名(路径), mode = "?", encoding="字符集") f 可写成任意变量等,它被称作:文件句柄,文件操作符,或者文件操作对象 其中文件的路径有两种: 绝对路径,从磁盘的根目录寻找路径,或者从互联网上找路径 相对路径(相对于当前程序所在的文件夹),在同一个文件夹互相访问,如下面的例子 文件操作的encoding应该是utf-8,这是因为在Python中默认编码为utf-8. 2.mode:

【python基础】之文件操作

一.文件操作的基本流程 #打开文件,得到文件句柄并赋值给一个变量 f = open('小重山','r',encoding='utf-8') #通过句柄对文件进行操作 print(f.read()) #关闭文件 f.close() 二.文件打开模式 r,只读模式(默认).w,只写模式.[不可读:不存在则创建:存在则删除内容:]a,追加模式.[可读: 不存在则创建:存在则只追加内容] "+" 表示可以同时读写某个文件 r+,可读写文件 [可读:可写:可追加] :光标默认在0位置,最后位置开

Python学习—基础篇之文件操作

文件操作 文件操作也是编程中需要熟练掌握的技能,尤其是在后台接口编写和数据分析过程中,对各种类型的文件进行操作,获取文件信息或者对信息进行存储是十分重要的.本篇博客中将主要对常见的文本格式文件和Excel文件的相关操作进行介绍. 一.文本文件 1.1 文件操作流程 1.打开文件,获得文件句柄,并赋值给一个变量 : 2.通过句柄对文件进行相关操作: 3.关闭文件 示例: 1 # -*- coding:utf-8 -*- 2 # author: cdc 3 # date: 2018/8/23 4 5

Day2-Python基础2---集合和文件操作

一.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 1 s = set([1,4,5,7,3,8,7,9,6]) #创建一个数值集合 2 3 t = set("Hello") #创建一个唯一字符的集合 4 5 6 a = t | s # t 和 s的并集 7 8 b = t & s # t 和 s的交集 9 10 c = t – s # 求差集(项在t中,但不在s中)

Nginx基础入门之文件操作优化及请求特殊处理介绍

本节的内容主要讲到关于nginx文件操作优化以及对客户端请求特殊处理(比如限速,不合法请求处理,是否注明nginx版本号) 一.通过nginx对客户端相关请求做特殊处理 1.1 按HTTP方法名限制用户请求 语法:limit_except method ... {...} 配置块:location Nginx通过limit_except后面指定的方法名来限制用户请求.方法名可取值包括:GET.HEAD.POST.PUT.DELETE.MKCOL.COPY.MOVE.OPTIONS.PROPFIN