python求道07日

一、文件操作

1.只读模式     ‘r‘

使用函数open打开文件, 

f=open(‘你才是一个大傻子‘,mode=‘r‘,encoding=‘utf-8‘)
ll=f.read()
print(ll)
f.close()

具体使用方法为文件路径+打开形式+打开编码方式

文件路径分为绝对路径和相对路径,用绝对路径创建文件时会默认编码方式,得自己查询,如果打开时不用相对应的编码方式,将会出现报错,相对路径则不会有这种困扰

如上述例子中即是在python中创立了一个文件,是相对路径,其绝对路径是C:\Users\Administrator\PycharmProjects\untitled\day1\你才是一个大傻子(使用右键菜单中copy path一选项)

整体形式如上,使用后要关闭,不然会一直占用内存

2.只写模式 

 对于w,要是没有文件就会自行创建文件,要是有文件就会把文件的内容删掉以后重写

    举上面这个例子

f=open(‘你才是一个大傻子‘,mode=‘w‘,encoding=‘utf-8‘)
f.write(‘警察来了,快跑‘)
print(f)
f.close()

  现在txt里的内容就变成了(警察来了,快跑)需要注意的时,写操作并不能赋予一个新的变量,一旦赋予,print出来的东西将是txt中字符的数量

  写操作一出,就这就引出了追加功能(‘a’),即在写好的文档后面添加字

3.可读可写‘r+‘

  在可读可写模式中,计算机十分死板,只能操作两步,即先读,读完以后写,然后文件就处于不可使用状态,再后面使用读函数就不能读了

f=open(‘你才是一个大傻子‘,mode=‘r+‘,encoding=‘utf-8‘)
print(f.read())
f.write(‘警察来了,快跑‘)
f.close()

4.按照这个推理,则会有W+模式,a+模式,另外,设计到光标,则会有一个移动光标函数,为 f.seek()

 在文件操作当中,read函数是按照字符去读文件的,所以不管是英文还是中文,都不会出什么差错,但是seek移动光标的时候是按照字节定义光标的位置的,每个中文是由三个字节表示,一旦光标订错,那就会读错.

    既然涉及到移动光标,肯定有查找现在光标位置函数,为f.tell()

5.另外,read还有一个新的函数readline,这个函数也是读的意思,不过是一行一行的读,即使用一次函数读一行,再使用一次读下一行,readlines则是把每一行字符当成一个一个列表里的元素,然后组成一个新列表(可结合for循环将文章中内容打印出来),具体表示如下

f=open(‘你才是一个大傻子‘,mode=‘r‘,encoding=‘utf-8‘)
print(f.readline())
print(f.readline())
print(f.readline())
f.close()

6.忘写文件关闭语句,所以有一种新的打开方式,会自动关闭文件

with open(‘你才是一个大傻子‘,mode=‘r‘,encoding=‘utf-8‘)as f:
    line=f.readlines()
    print(line)
    f.close()

注意第二行开始的缩进和第一行后面的冒号不能省略,后面的f是把这个文件命名为f的意思,相当于一个句柄

7.python之文件修改

     python里面没有修改文件的函数,所以由一下思路来进行文件修改

 1.打开要修改的文件和一个新文件 

 2.使用for循环查遍要修改文件里的字符,

 3.使用replace函数将其替换成要修改的字符,

 4.使用remove删除函数删除原文件,使用rename重命名函数将要新文件改名成老文件

  具体操作如下

with open(‘人民的名义‘,mode=‘r‘,encoding=‘utf-8‘)as f,open(‘人民的名义.改‘,mode=‘w‘,encoding=‘utf-8‘)as f2:
    for line in f:
        if ‘庹联军‘ in line:
            line=line.replace(‘庹联军‘,‘庹丹‘)
            f2.write(line)

import os
os.remove(‘人民的名义‘)   
os.rename(‘人民的名义.改‘,‘人民的名义‘)

相关推荐