1、文件定义

(1)、什么是文件?

文件是操作系统为用户或者应用程序提供一个读写硬盘的虚拟单位

文件的核心就是读写,即我们只需要对于进行读写操作,就是对操作系统发起请求,然后由操作系统将用户或者应用程序对文件的读写操作转化成具体的硬件指令。

(2)、为什么要有文件?

因为内存无法永久保存数据,如果要永久保存数据我们要存到硬盘,而操作文件就可以实现对硬件的操作

(3)、如何用文件

name = 'qqc'

先把内存的数据存到硬盘中

再把硬盘的数据读到内存中

(4)文件操作流程

f = open(r'E:\SH_fullstack_s2\day08\a.txt',mode='r') 向操作系统发起请求,要求操作系统打开文件,占用操作系统资源

data = f.read()  向操作系统发起读的请求,会被操作系统转成具体的硬盘操作,将内容由硬盘读入内存

f.close  向操作系统发起请求,让操作系统关不文件,回收系统资源

总结:

打开文件

读写

关闭

2、路径

(1)、绝对路径:从盘符(C:\\ E:\\ D:\\)开始写一个完整的路径
(2)、相对路径:相对于当前执行文件所在的文件夹开始找
f =open(r,'a\atxt') r 表示后面的都是原生字符串 3、文件的打开模式
(1)控制读写文件内容的结果又两种:t模式text,b模型bytes
注意:
1、t与b这两种模式均不能单独使用,都需要与r/w/a(读,写,追加)之一连用
2、默认的内容格式是t
3、只有文本文件才能用t模式,也只有文本文件才有字符编码的概念
(2)操作文件的基础模式有三种:
1、read,只读模式
在文件不存在时会报错,在文件存在的时候回将文件指针移动到开头
 f=open(r'b.txt',mode='rt',encoding='utf-8')
# data1=f.read()
# print('第一次:',data1)
# # print(type(data1))
#
# # data2=f.read()
# # print('第二次:',data2)
# f.close() # f=open(r'b.txt',mode='rt',encoding='utf-8')
# data2=f.read()
# print('第二次:',data2)
# f.close() 2、只写模式,write,只能写不能写读
文件不存在时会建空文件,文件存在时会将文件清空
# f=open(r'c.txt',mode='wt',encoding='utf-8')
# # print(f.readable())
# # f.read()
# # f.write('你好啊我的天\n你好啊我的地\n啊啊啊啊啊啊\n')
# # f.write('4444\n')
# # f.write('5555')
#
# lines=['1111\n','2222\n','33333\n']
# # for line in lines:
# # f.write(line)
# f.writelines(lines)
#
# f.close()
3、只追加写模式 a
只能写,不能读
在文件不存在时会创建空文件,在文件存在的时候会将指针移动蛋文件末尾
# f=open('d.txt',mode='at',encoding='utf-8')
# print(f.readable())
# f.read() # f.write('555555\n6666\n')
# f.writelines(['77777\n','8888888\n','999999999\n']) # f.close() b:二进制模式
注意:
1、一定不能指定字符编码,只有t模式才与字符编码有关
2、b 是二进制模式,是一种通用的文件读取模式,因为所有的文件在硬盘中都是以二进制形式存放的
(1)f=open('egon.jpg','rb')      读图片
# data=f.read()
# print(type(data))
# f.close()

(2)with open(r'D:/shangke.mp4','rb') as f:
print(f.read() ) 读视频
 

(3)# 文件复制操作
with open(r'D:/shangke.mp4','rb') as f: #读取视频文件
data = f.read()
print(data)
f= open(r'E:/英雄时刻/shan.mp4','wb') #将视频写入所指定的新的路径
f.write(data)

(4)with open(r'c','wb')as f:
# data=f.read()
f.write('您好\n'.encode('UTF-8') ) #用二进制模式写,需要把所写的内容进行编码

(5)with open(r'c','r',encoding= 'UTF-8')as f,\
open(r'qqc','a',encoding= 'UTF-8')as f1:
f1.write(f.read() ) #将c文件的内容读出来,追加到qqc文件中 循环读
#循环读
# with open(r'qqc','r',encoding= "UTF-8")as f:
# for y in f:
# print(y) # with open(r'qqc','rb')as f:
# for x in f:
# print(x)
 

phtnon 文件操作的更多相关文章

  1. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  2. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  3. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  4. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  5. SQL Server附加数据库报错:无法打开物理文件,操作系统错误5

    问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...

  6. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  7. Linux文件操作的主要接口API及相关细节

    操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...

  8. C语言的fopen函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

  9. Python的文件操作

    文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...

随机推荐

  1. 通过自定义比较器排序(C#版)

    一.方法概述 自定义比较器需要实现接口IComparer<T> 二.示例过程 1.新建一个Product产品类 /// <summary> /// 产品类 /// </s ...

  2. nodejs 环境安装

    参考网站 http://www.runoob.com/nodejs/nodejs-http-server.html https://github.com/nodesource/distribution ...

  3. UPC 6616 Small Mulitple

    D - Small Multiple 题目传送门 Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Stateme ...

  4. python with语句中的变量有作用域吗?

    一直以为python中的with语句中的变量,只在with语句块中起作用.不然为什么要缩进一个级别呢? 呵呵,然而并没有为with语句内的变量创建新的作用域. 举例: # test.py with o ...

  5. C#学习-类的成员

    定义完类之后,还需在类中定义成员. 类的成员包括字段.属性.方法和构造函数等,它们与类一样,也都有自己的访问权限.以下是 public,同一个程序集或引用该程序集的其他程序集都可以访问 private ...

  6. 基于AspNet Core2.0 开发框架,包含简单的个人博客Demo

    大家好,最近离职了,利用闲暇时间就捣鼓了一个基于AspNet Core开发框架,分享出来希望能给AspNet Core学者带来一些帮助,同时也能跟大家一起学习.当然了,由于我的个人技术及经验的有限,框 ...

  7. 【转】WPF中的窗口的生命周期

    原文地址:http://www.cnblogs.com/Jennifer/articles/1997763.html WPF中的窗口的生命周期 WPF中所有窗口的基类型都是System.Windows ...

  8. arcgis 10 File GDB转成9.3 File GDB

    背景:已有的File GDB数据是在ArcGIS 10下面创建的,在运行9.3的电脑上无法读取,需要转换成低版本. 方法: 1.在ArcGIS Toolbox中找到相关工具(datamanagemen ...

  9. sendfile

    Sendfile 函数在两个文件描写叙述符之间直接传递数据(全然在内核中操作,传送),从而避免了内核缓冲区数据和用户缓冲区数据之间的拷贝,操作效率非常高,被称之为零拷贝. Sendfile 函数的定义 ...

  10. AtCoder Grand Contest 006 (AGC006) C - Rabbit Exercise 概率期望

    原文链接https://www.cnblogs.com/zhouzhendong/p/AGC006C.html 题目传送门 - AGC006C 题意 有 $n$ 个兔子,从 $1$ 到 $n$ 编号, ...