python中的读写

本文详细介绍了Python中文件读写的基本逻辑,包括定位文件、建立流、读写操作,并列举了相关函数如open、write、read等的使用方法。同时,讲解了os模块的重要函数,如listdir、mkdir、getsize等,以及如何进行文件复制。内容覆盖了文件操作的基础和应用。
摘要由CSDN通过智能技术生成

文章将会分为以下几个部分:

一、读写的基本逻辑

二、相关的函数及其用法

三、相关的应用

======================================================================

一、读写的基本逻辑

首先需要确定一个思路,python在读取文件的逻辑步骤是怎样的。

1.知道文件的位置

2.建立文件与python之间的通道(流)

3.读取或写文件

4.接收读取的文件

举个简单的例子喝牛奶:

你得先知道牛奶在哪,然后你还得有吸管(这个就是你和牛奶的连接通道),插入吸管后吸牛奶

如果是写入就是装牛奶

-----------------------------------------------------------------------------------------------

二、相关的函数及其用法

1. 首先是最简单的open函数。

用例子来说就是制造吸管的函数

stream = open('要读取或写的文件地址', '判断你是要读还是写')

第二个参数:

‘w’------写,python写进文件(只能是txt)

‘wb’-----写, 将文件二进制转译后再写

‘r’-------读, 用python读取文件(只能是txt)

'rb'-------读, 转译二进制再读

2. write函数

在你建立了管道了之后需要装牛奶,这个动作就是write

stream.write(‘你需要写入的东西’)

3.read 函数

吸牛奶就是read

container  = stream.read(). #它会把你文件里的所有东西读出来

4.readline

与read函数类似,但是读一行

你需要引入一个模块:os

os模块里的函数是比较重要的

1. os.listdir("文件夹位置"). #以列表形式返回文件夹内的文件名和文件夹名

2. os.mkdir('创建文件夹的地址') #创建空文件夹

3. os.getcwd(). #得到当前文件夹的位置

4. os.path.dirname(__file__)  #得到当前文件的位置

5. os.path.split('文件地址')      #可以分割文件目录和文件名

6. os.path.splitxt('文件地址')     #可以将文件的类型名与路径分割开

7. os.path.getsize('目标文件地址')     #得到文件的大小(字节)

8. os.path.join('文件目录地址','文件名')  (可以在后面跟多个文件名)  #可以拼接成完整的文件地址

-----------------------------------------------------------------------------------------------

三、相关应用

1. 简单的读写操作

#目标路径
path = '/Users/sliver/Documents/z/aa.txt'

#建立吸管(流)
stream = open(path,'r')

#容器来接收到的牛奶
container = stream.read()




2.连同文件夹一起复制过去

import os

initial = '/Users/sliver/Documents/z'
target= '/Users/sliver/Documents/zz'

def copy(initial_path, target_path):

    if os.path.isdir(initial_path) and os.path.isdir(target_path):  #判断录入的两个路径是不是文件夹
        #将文件夹中的所有文件名和文件夹名弄出来
        filename = os.listdir(initial_path)

        for file in filename:
            # 拼接新的文件名
            new_path = os.path.join(initial_path, file)
            if os.path.isdir(new_path):# 判断遍历中的路径是不是文件夹
                in_targetpath = os.path.join(target_path,file)
                os.mkdir(in_targetpath)

                copy(new_path,in_targetpath)

            else:
                with open(new_path,'rb') as rstream:
                    #读取初始文件的内容
                    container = rstream.read()
                    #拼接最后完整的文件路径
                    final_path = os.path.join(target_path,file)
                    with open(final_path,'wb') as wstream:
                        #把初始文件的内容写到新的文件中去
                        wstream.write(container)
        else:
            print("复制完成")


    else:
        print("非文件夹")




#调用看看
copy(initial,target)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值