python 关于文件,以及文件夹的操作

1.打开文件:

f=open(r‘E:\PythonProjects\test7\a.txt‘,mode=‘rt‘,encoding=‘utf-8‘)

以上三个单引号内分别表示:要打开的文件的路径,mode为文件打开方式具体介绍在下文,encoding为文件的字符编码,一般默认为utf-8

2.读写文件:

data=f.read()  # 读文件

f.write()    # 写文件

3.关闭文件:

f.close()

4.为了简便,一般采用上下文的方法进行文件操作,可不用关闭文件

1 with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
2     data=f.read()
3     print(data)

读文件

with open(‘a.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:
    f.write(‘hello world‘)

写文件

5.控制文件读写的操作:

r:(默认模式):只读:以该模式打开文件时,若文件不存在则报错,若文件存在,则文件指针在文件开头,即从文件开头开始读文件

w:只写:以该模式打开文件时,若文件不存在则创建一个文件,如文件存在,则清空文件内容,文件指针移到开头

a:追加写:以该模式打开文件时,若文件不存在则创建一个文件,如文件存在,则将文件指针移到文件末尾,在文件末尾写入新的内容

6.控制文件读写内容的模式:(t 和 b都不能单独使用,必须与r,w,a结合使用)

t:(默认):无论读写都是以字符为单位,只能识别文本文件,必须要制定encoding

b:无论读写都是以字节为单位,可以识别所有文件,一定不能指定encoding

7.文件的拷贝

with open (‘a.txt‘,mode=‘rb‘) as af,    open(‘b.txt‘,mode=‘wb‘) as bf:
    data=af.read
    f.write(data)  

执行程序后,打开文件,即可发现文件已成功拷贝,这里使用 b 而不是用 t 模式,是因为文件有多种格式

8.文件的修改:

文件的修改是在硬盘上实现文件的覆盖,相当于一个新的文件以旧的文件名来命名的; 文件的修改有俩种方式,分别适用于不同的情景

方式一(适用于容量小的文件):这种方式的原理是:创建一个新的文件,将旧文件的内容拷贝到新的文件中;这样内存里就存在俩个文件,故不适用于容量大的文件,具体代码见下方 View

with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
    data=f.read()
    data_new=data.replace(‘yang‘, ‘yv‘)
with open(‘b.txt‘,mode=‘wt‘,encoding=‘utf-8‘)as p:
    p.write(data_new)

方式二(适用于容量大的文件):此方式的原理为:读取旧文件的一行内容,修改后写到临时文件中,循环往复直到写完,然后将源文件删除,将临时文件命名为源文件名.这种方式在内存中只存在2行文件,节省内存,可用于大文件

import os
with open(‘b.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f,     open(‘.b.txt.swap‘,mode=‘wt‘,encoding=‘utf-8‘) as p:
     for line in f:
         p.write(line.replace(‘yv‘,‘yang‘))
        # 调用replace方法,将源文件中的‘yv‘,换成‘yang‘
os.remove(‘b.txt‘)
os.rename(‘.b.txt.swap‘,‘b.txt‘) 

9. 文件的阶段:truncate(n)

将文件中n个字节后内容全删了,当 n 不存在时,即删除文件全部内容

10.文件内指针的移动

f.seek():  指针的移动是以字节为单位的

seek 有三种模式:

0:(默认模式) 指针在文件开头,只有在 0 模式可以在 t 模式下用,也可以在 b 模式下用,而 1 ,2 模式只能在 b 模式下使用

1:     指针在当前位置

2:     指针在文件末尾

以下为具体事例:

# 0
with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘)as f:
     f.seek(3,0)
     print(f.tell())  # 指针当前位置
     print(f.read())  # 从指针后读出所有内容

# 1  参照指针当前位置
 with open(‘a.txt‘,mode=‘rb‘)as f:
     f.read(2)
     f.seek(4,1)
     print(f.tell())
     print(f.read().decode(‘utf-8‘))

# 2   参照文件末尾
 with open(‘a.txt‘,mode=‘rb‘)as f:
     f.seek(-5,2)
     print(f.tell())
     print(f.read().decode(‘utf-8‘))

当 seek处于 2 模式时,可以将文件中新加入的内容打印出来,具体代码如下:

 # 另一个文件进行写操作,写的代码如下:

with open(‘a.txt‘,mode=‘at‘,encoding=‘utf-8‘)as f:
     f.write(‘hello world\n‘)

#  每在文件中写入新的内容,都打印出来,以下代码执行打印操作:
import time
with open(‘a.txt‘,mode=‘rb‘)as f:
    f.seek(0,2)
    while True:
        line=f.readline()  # readline 可以读取没有内容的部分
        # print(line.decode(‘utf-8‘))
        if len(line)==0:
            time.sleep(0.1)
        else:
            print(line.decode(‘utf-8‘))

原文地址:https://www.cnblogs.com/yang220/p/10085345.html

时间: 2024-11-10 00:28:43

python 关于文件,以及文件夹的操作的相关文章

用python操作文件和文件夹

我有一堆层级3到4级的文件夹,这里面存有的一些文件是我需要的,一些是我不需要的.需要的文件都存储在名字中有'Data'的文件夹内.现在我需要把这些文件提取(拷贝)到一个指定的文件夹里. 一个文件夹一个文件夹去点开是一种方法,但是对于层级比较深的文件夹是一件很枯燥的事情. 本着一切尽量自动化的原则,我用python来做这件事情. 这个需求归纳下来需要: 从一个起始目录开始 遍历每一个文件夹 如果文件夹的名字中有'Data',拷贝它的内容至目标文件夹 python对文件.文件夹的操作是非常常见的需求

PYTHON对文件及文件夹的一些操作

python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w)           直接打开一个文件,如果文件不存在则创建文件 创建目录:os.mkdir("file")                   创建目录 复制文件:shutil.copyfile("oldfile","newfile&

【Python】Python对文件夹的操作

上一篇介绍了Python对文件的读写操作,现在来介绍一下Python对文件夹的操作.由于我是项目中用到的,所以我就以我的实际应用实例来说明吧.希望对大家有所帮助. 1.实例需求: 现在有一个文件夹myDir,该文件夹中又有n个文件夹dir1,Dir2, ..., dirN,每个文件夹中又有m个文件,这个实例需要达到的目的就是要将这n个文件夹dir1,Dir2, ..., dirN中的所有文件全部写到一个新文件中,该新文件在文件夹myDir下. 2.源代码: test.py代码如下: import

python中对文件、文件夹的操作需要涉及到os模块和shutil模块。

创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件 创建目录:os.mkdir("file") 创建目录 创建多层新目录:def mkdirs(path): # 去除首位空格 path=path.strip() # 去除尾部 \ 符号 path=path.rstrip("\\") # 判断路径是否存在 # 存在 True #

python之文件的读写和文件目录以及文件夹的操作

为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用的文件对象占用内存.举个例子,对文本文件读取: file_object = open('thefile.txt') try: all_the_text = file_object.read( ) finally: file_object.close( ) Python读写文件实际操作的五大步骤 一.打开文件 Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你

Python操作文件、文件夹、字符串

Python 字符串操作 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr2 连接字符串 #strcat(sStr1,sStr2) sStr1 = 'strcat' sStr2 = 'append' sStr1 += sStr2 print sStr1 查找字符 #strchr(sStr1,sS

Python对文件和文件夹的高级操作模块shutil

shutil模块提供了许多关于文件和文件夹的高级操作. 特别提供了支持文件复制和删除的功能. # 将文件对象fsrc的内容复制到文件类对象fdst.length(可选参数)是缓冲区大小 shutil.copyfileobj(fsrc,fdst,length) # 将文件名为src的的内容复制到名为dst的文件中 shutil.copyfile(src,dst) # 将权限从src复制到dst shutil.copymode(src,dst) #将权限位,上次访问时间,上次修改时间以及src中的标

python文件,文件夹操作

首先,导入os模块 1 import os 获取当前文件所在文件夹的路径,getcwd() 更改当前目录:chdir() 创建文件夹,mkdir() 获取文件夹下所有子文件夹及文件,listdir() 判断是否是文件夹os.path.isdir() 更改文件名称,rename(old_name, new_name) 删除文件夹,rmdir() import os path = os.getcwd() print(path) # os.chdir('c:\\') # # path = os.get

python学习之一 OS 文件夹的操作和文件操作

# OS模块 :查看一个文件夹下所有文件,这个文件夹有文件夹,不能用walk# -- coding: UTF-8 --import osimport sys#C:\Users\Administrator\Desktop\ExcelPATH=r'C:\Users\Administrator\Desktop\Excel'# print(os.getcwd()) # 获取当前路径# print(os.sep) # 获取系统路径分隔符# 返回指定目录下所有文件和文件夹(目录):os.listdir(PA