加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python基础 6 .文件操作

发布时间:2020-12-20 10:18:16 所属栏目:Python 来源:网络整理
导读:6.1 文件 1.打开文件: f = open(r‘file_path‘, mode=‘r‘) ? ? 不指定路径就是当前文件夹下 ? ? 传入表示文件路径的字符串,会返回一个文件对象。 2.关闭文件: f.close() 打开一个文件 最后一定要关闭 ? ? 路径可以用相对路径 也可以用绝对路径 3.模式

6.1 文件

1.打开文件: f = open(r‘file_path‘, mode=‘r‘)

 ? ? 不指定路径就是当前文件夹下

? ? 传入表示文件路径的字符串,会返回一个文件对象。

2.关闭文件: f.close()

 打开一个文件 最后一定要关闭

? ?   路径可以用相对路径 也可以用绝对路径

3.模式 描述

  • r:

    以只读方式打开文件,文件指针默认放在文件开头,文件不存在则报错

  • r+:

    打开一个文件用于读写,文件指t默认放在文件开头,文件不存在则报错

  • w:

    打开一个文件只用于写入,如果该文件已存在则将其覆盖,如果不存在,创建新文件

  • W+

    打开一个文件用于读写,创建新文件

  • a:

    打开一个文件用于追加,如果文件已存在,文件指针会放在文件结尾(也就是说,新的内容将会被写到已有内容之后)如果不存在,创建新文件进行写入

  • a+:

    打开一个文件用于读写,如果文件已存在,文件指针会放在文件结尾:,文件打开时会是追加模式,如果不存在,创建新文件用于读写

  • 其他模式:rb rb+ wb wb+ ab ab+

    加个b的作用:以二进制的格式打开文件,进行上述操作 。

  • 文本模式

    以str字符串形式写入 读取出来的也是str字符串

  • 二进制模式

    以bytes字符串形式写入 读取出来的也是bytes字符串

?

?

4.读取/写入 文件

操作 方法
读取指定大小的内容 f.read()
读取一行的内容 f.readline()
读取多行内容 f.readlines()
写入内容 f.write(data)
写入多行(需要自己加换行符) f.writelines(lines)
立即刷新缓冲 f.flush()
获得游标位置 f.tell()
调整游标位置 f.seek(position)

6.2 内存假文件StringIO BytesIO

1.:如何在内存中模拟一个文件 ?

文本模式: f = io.StringIO()
二进制模式: f = io.BytesIO()

2.读取文件:

f.getvalue() ?  获取整个io流的文件(光标移到最前面)
注意! 内存假文件一旦关闭,数据消失

6.3 with … as …

with open(file_path,mode=‘r‘) as f:
?
? ? 对f进行一系列操作
? ? 也可以执行别的操作
?
? ? 跳出with语句快的时候自动执行f.close()

?

with open(file_path,mode=‘r‘) as f1,open(file_path,mode=‘r‘) as f2....  :
?
? ? 对f1 f2进行一系列操作
? ? 也可以执行别的操作
?
? ? 跳出with语句块的时候自动执行f.close()

?

6.4 os path(路径)

open(file_path,mode=‘r‘,encoding=‘utf-8‘)

open(file_path,encoding=None,errors=‘ignore‘) 忽视问题

?

1.os模块 的目录及文件操作:

显示当前路径: os.getcwd()
展示当前目录内容: os.listdir(path)
改变当前路径: os.chdir(path)
创建目录: os.mkdir(文件名)
删除目录:”os.rmdir(文件名)
?
使用Linux命令: os.system()
删除文件: os.remove(文件名)
重命名: os.rename

2.os.path模块的路径操作:

路径拼接: os.path.join(path1,path....)
所在目录/父级目录: os.path.dirname
基本短路径: os.path.basename
绝对路径: os.path.abspath
相对路径: os.path.relpath

资源大小: os.path.getsize
资源时间: os.path.getctime /创建
         getatime /访问   
         getmtime  修改
路径是否存在: os.path.exists
是否是目录: os.path.isdir
是否是文件: os.path.isfile
是否是绝对路径: os.path.isabs
print(os.path.abspath(‘path‘))
?
import os

def copy_file(old_path,new_path):
? ?with open(old_path,‘r‘)as f,open(new_path,‘w‘)as e:
? ? ? ?e.write(f.read())

copy_file(‘test.py‘,‘/home/pyvip/test2.py‘)


def traversal_dir(path):
? ?path_list = os.listdir(path)

? ?print(path_list)

traversal_dir(‘homepyvippython 34jichu‘)
?
?
#####################################
?

def traversal dir(dir_ path):
? ? ?path_ list = os.listdir(dir_ path)
? ? ?print(‘ 目录|{}|中的内容为:{}。‘.format(dir_ path,path. list))
?for path in path_ list:
? ? ? ? ?abs_ path = os .path. join(dir_ path,path)
?if os.path. isdir(abs_ path):
? ? ? ? ?traversal_ dir(abs_ path)

traversal_ dir( ‘ /home/pyvip‘ ) .
?
?
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读