python的文件操作,os模块,数据的组织维度,目录与文件的相关操作

python的文件操作

需要注意文本操作输入输出都是字符串,主要不同维度数据类型的输出输入方法

1.打开文件

使用open()函数打开文件。这个函数需要至少两个参数:文件名和模式(如只读、只写、追加等)。写的时候这个函数可以在没有该文件时候创建一个。encodeing='utf-8'来设置编码格式

open打开的文件是一个对象,如果不调用任何函数如read(),得到的就是一个obj

一些打开模式:
file = open('example.txt', 'r') 这行代码不会创建新文件,它仅用于打开已存在的文件以进行读取(‘r’ 模式)。如果指定的文件 ‘example.txt’ 不存在,Python 会抛出一个 FileNotFoundError 异常。

在这里插入图片描述

file = open('example.txt', 'r')  # 打开文件以只读模式  
# 或者  
file = open('example.txt', 'w',encodeing='utf-8')  # 打开文件以只写模式,如果文件已存在则覆盖  
# 或者  
file = open('example.txt', 'a')  # 打开文件以追加模式,写入的数据会被添加到文件末尾

2.读取文件

一旦文件被打开,你就可以使用文件对象的read()、readline()或readlines()方法来读取文件内容。

一些读写方法:
在这里插入图片描述

content = file.read()  # 读取文件全部内容  
print(content)  

seek() 函数的运用:
需要注意如果在utf-8中一个中文为3个字节,偏移量是3,seek(3)

def file_wr_read(filename):
    f=open(filename,'w+',encoding='utf-8')#创建文件,光标在0的位置
    f.write('word')#写入文本后文件的光标会停留在最后
    f.seek(0)#用seek将文件的光标重新放到前边,这样才可以从头开始读取文件
    f.read()
    f.close()

if __name__ == '__main__':
    file_wr_read('newfile.txt')

3.写入文件

使用文件对象的write()或writelines()方法写入文件。

file.write('Hello, Python!\n')  # 写入字符串  
file.writelines(['This is a line.\n', 'This is another line.\n'])  # 写入一个字符串列表  
file.close()  # 写入完成后,不要忘记关闭文件

4.追加文件

与写入文件类似,但使用’a’模式打开文件,以便在文件末尾追加内容。

file = open('example.txt', 'a')  
file.write('This will be appended.\n')  
file.close()

5.关闭文件
完成文件操作后,应使用close()方法关闭文件。这是一个好习惯,可以释放系统资源。
因为被open()后会占用内存资源
先打开的文件后关,后打开的文件先关

file.close()

6.使用with语句

为了简化文件操作并确保文件正确关闭,推荐使用with语句。with语句会在代码块执行完毕后自动关闭文件,即使在读写文件时发生了异常。

with open('example.txt', 'r') as file:  
    content = file.read()  
    print(content)  
# 文件已自动关闭,无需调用close()

一个简单的创建文本的代码

def write_file():
    file=open('newfile','w',encoding='utf-8')
    file.write('words')
    file.close()

def read_file():
    file=open('newfile.txt','r',encoding='utf-8')
    content=file.read()
    print(content)
    file.close()

if __name__ == '__main__':
    write_file()

数据的组织维度

文档的写入需要内容是字符串,列表等数据是没有办法写入的
在这里插入图片描述
1.一维数据的处理

需要注意一维数组二维数组的写入需要用.join转化成一个长的字符串
例如将列表中的元素用逗号将一维数据连接成字符串,对于二位列表,需要遍历每一个元素列表,即在一维循环内完成join

line=','.join(item)

2.二维数据的处理

import json

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

目录与文件的相关操作

import os

在这里插入图片描述
在这里插入图片描述

import os

print(os.getcwd())   #D:\python学习\pythonProject\try1

在这里插入图片描述
在这里插入图片描述
用这个模块可以指定路径

例子之文件的创建,逐行读取,识别字段,自动回复

file= open('content.txt','w',encoding='utf-8')
file.writelines(['111|1111\n','222|2222'])
file.close()

def find(que):
    with open('content.txt','r',encoding='utf-8')as file:

        while True:
            con = file.readline()
            if con== '':
                break
            key=con.split('|')[0]
            answer=con.split('|')[1]
            if key in que:
                return answer
    return False

if __name__ == '__main__':
    ans=find('333')
    
    print(ans)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值