文本文件的处理

打开文件

函数:open(filename,mode)
filename => 访问的文件
mode => 访问模式

常见模式

作用

r

只读

r+

读写

w

只写 文件存在则覆盖,不存在则创建

w+

只写 文件存在则覆盖,不存在则创建

a

追加 文件存在追加到已有内容后

rb

读写

wb

读写

ab

追加和读

python3 文本操作 python 处理文本_python3 文本操作


比如我在这里先编辑了一个1.txt
然后写一个脚本来读取它

file=open('1.txt','r')
print(file.readline())

python3 文本操作 python 处理文本_linux_02


why??
为什么只显示一行

read 读取整个文件,每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中,也就是说内容是一个字符串类型。
readline 读取下一行,每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中,返回str类型。
readlines 读取整个文件到一个迭代器以供我们遍历,每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型。]

O~
这下就明白了,所以咱们使用read()

python3 文本操作 python 处理文本_linux_03


使用readlines()的情况

python3 文本操作 python 处理文本_linux_04


其实它也是可以像read()一样输出
比如:

python3 文本操作 python 处理文本_python_05


那么这里我也就不多举例了哈,有兴趣的可以自己动手研究一下~

当然,还有另一种表示的方法

比如:

with open('1.txt','r') as f:
    print(f.readlines())

python3 文本操作 python 处理文本_linux_06

python3 文本操作 python 处理文本_python_07

#coding:utf-8
file=open('1.txt','w')
file.write('Are You Ok?')
file.close()

可以看到1.txt已经变成了刚刚写入的内容

python3 文本操作 python 处理文本_os模块_08

追加

可以发现,刚刚咱们写的都已经被覆盖了。所以咱们得使用到a这个模式追加

python3 文本操作 python 处理文本_python_09


1.txt变为了

python3 文本操作 python 处理文本_os模块_10


这里咱们没有换行,加个换行符\n就可以了

python3 文本操作 python 处理文本_字符串_11

常见读写类型的区别

r只读,r+读写,若文件不存在会报错并不会创建新文件
w,只写,文件不存在会创建新文件,w+读写,文件不存在会创建新文件,两种方法使用的时候都会将文件内容先清零。
a,a+同样会创建新文件

文件夹的处理和操作

os模块提供了一个操作系统接口函数,通过os模块可以对系统中的文件,目录等进行操作
os.mkdir
os.rmdir
os.path.exits(‘C:/’)
os.rename(‘1.txt’,‘1.py’)
os.remove(‘1.py’)
os.getcwd()

一个例子

#coding:utf-8
import base64
import sys
'''
加密脚本
用法:python base64encode.py 需要加密的文本 加密后的文本
'''
with open(sys.argv[1],'rb') as file1:
    list = [base64.b64encode(i) for i in file1]
    '''
    for i in file1:
        list.append(base64.b64encode(i))
    '''
with open(sys.argv[2],'wb') as file2:
    for line in list:
        ''' 逐行读取'''
        file2.write(line+b'\n')
    file2.close()
    print('success!')

本文已经结束,由于水平有限,在很多地方肯定有些不足之处,如有纰漏或者错误,还请斧正,定当改进!