我的编程空间,编程开发者的网络收藏夹
学习永远不晚

day 08 文件操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

day 08 文件操作

文件操作  - >open()  打开
f = open(文件路径,mode='模式',encoding='编码格式') 最最底层操作的是bytes,打开一个文件的时候获取到的是一个文件的句柄
从文件中读取数据
f.read()  读取文档的内容
f.close()  关闭连接
f.flush()  刷新管道,把数据写入文件
f = open("alex和wusir的故事", mode="r", encoding="utf-8")
# 读取内容    #####首先新建一个文件,文本的名称是什么就是什么
content = f.read()  # 全部都读取出来
print(content)
# 坑:
c2 = f.read() # 读取不到内容. 因为上面已经读取完毕. 光标在末尾
print("c2", c2)
如果你打开的文档不是在py里面建立的,直接打开文档的路径,但是要注意的是,这个文档编码的格式是"gbk"
f = open("E:\西游记\金角大王吧.txt", mode="r", encoding="gbk")
print(f.read())
f.close()
文件的路径:
1.相对路径: 相对于当前程序所在的文件夹,如果在文件夹内,随便找,直接写名字;                      如果不在这个文件夹内,可能需要出文件夹或者进文件夹
                   ../  出文件夹
                   /   进文件夹:  文件夹/
2.绝对路径:从磁盘根目录寻找路径(有问题)
         只有在记录日志的时候可以用到绝对路径
日志: 程序运行过程中记录的信息
mode:
r  read  只读,读取
   读取文件的相关操作:
   1.read()  默认读取文件内容(全部)
   2. read(n) 读取n个字符
f = open('你喜欢的游戏', mode='r', encoding='utf-8')
print(f.read(3))  #读取3个字符
print(f.read(3))  #继续读3个字符
# 你喜欢
# # 的游戏
print(f.readline().strip()) # 换行符为分割, strip()可以去掉换行. 读取到的内容第一件事就是去掉空白
print(f.readline()) # 换行符为分割
扩展:
print("周润发", end="胡辣汤")    end 在最后添加内容并添加到新的一行
print("周星驰")    ##周润发胡辣汤周星驰
   3. readline()   读取一行 
   4. readlins()     读取全部,返回列表,一次性把文件中的读取出来
print("你叫什么名字?\n 我叫李嘉诚. 可能") #  换行
print("你叫什么名字?\\n 我叫李嘉诚. 可能") #  显示 \n
print("你叫什么名字?\\\\n 我叫李嘉诚. 可能") #  显示 \\n
   5.  for line in f:   每次读取一行内容
      文件句柄是一个可迭代对象
      #优点:相对节省内存
for line in f:    ####从文件中读取到每一行给前面的line
  print(line.steip())
f.close()
w   写如,只写
创建文件
清空文件
每次用w模式打开文件,都会清空这个文件(坑)
次用w模式打开文件, 都会清空这个文件(坑)
f = open('胡辣汤', mode="w", encoding="utf-8") # 可以帮我们创建文件
 
f.write('河南特色\n')
f.write("东北特色\n")
f.write('陕西特色\n')
 
# 好习惯
f.flush()  # 刷新管道, 把数据写入文件
f.close()
a    
也可以创建文件
apppend() 追加,在文件的末尾写入内容
f = open("葫芦小金刚", mode="a", encoding="utf-8") # a, append 追加, 在文件的末尾写入内容 f.write("你叫什么名字啊?")
f.read() # not readable
f.flush()
f.close()
r+ :  读写操作   对于文件而言.应该有的操作就是两个: 读,写
不论读取内容的多少,只要你读了,写就是在末尾
f = open("你喜欢的游戏", mode="r+", encoding="utf-8")
content = f.read(2)  # 顺序必须先读, 后写
print(content)   #你喜
r+特有的深坑:不论读取内容的多少. 只要你读了. 写就是在末尾
f.write('五娃')
f.flush()
f.close()
print(f)
w+ : 写读操作  ,一上来就会清空文件,很少人用
一上来会清空文件. 没人用
f = open("葫芦小金刚", mode="w+", encoding="utf-8")
# content = f.read(2)  # 顺序必须先读, 后写
# # r+特有的深坑:不论读取内容的多少. 只要你读了. 写就是在末尾
f.write('五娃')
f.write("又能吐火的, 有能吐水的.")
# # 移动光标
f.seek(0) # 移动到开头
s = f.read()
print("=========>", s)
 移动光标    f.seek(0) 移动到开头
a+ :   追加写读 ,光标在末尾.所有的写都是在末尾
# 追加写读, 光标在末尾. 所有的写都是在末尾
f = open("葫芦小金刚", mode="a+", encoding="utf-8")
f.write("机器葫芦娃召唤神龙, 高喊.我代表月亮消灭你!")
f.seek(0)
s = f.read()
print("=========>", s)
所有带b的表示直接操作bytes,档处理非文本文件的时候
rb
wb
f1 = open("c:/huyifei.jpg", mode="rb")
f2 = open("d:/huerfei.jpg", mode="wb")
 
for line in f1: # line是从f1中读取的内容
    f2.write(line)  # 把读取的内容原封不动的写出去
 
f1.close()
f2.flush()
f2.close()
ab   断点续传,如下载视频,停止后再开始从停止的位置继续下载
文件操作中关于文件句柄的相关操作
seek()  移动光标
f.seek(0)  移动到开头(最多)
f.seek(0, 2)
seek : 1.表示偏移,   默认0,开头   1,当前位置   2,末尾
tell:   返回光标所在的位置
f = open("胡辣汤", mode="r+", encoding="utf-8")
# f.seek(0,2) # 移动到末尾
# content = f.read(5)
# print(content)
# f.seek(0) # 移动到开头
# print(f.read())
# print(f.tell())  # 字节
 
f.seek(3)
print(f.read())
文件修改,实际操作
文件修改:
1.先从文件中读取内容
2.把修改的内容进行修改
3.把修改好的内容写入一个新文件
4.删除掉原来的文件
5.把新文件重命名成原来的文件的名字
#####导入os 模块   os表示操作系统
f = open("夸一夸alex", mode="r", encoding="utf-8")
f2 = open("夸一夸alex_副本", mode="w", encoding="utf-8")
# 导入os模块  os表示操作系统
import os
f = open("夸一夸alex", mode="r", encoding="utf-8")
f2 = open("夸一夸alex_副本", mode="w", encoding="utf-8")
for line in f:
    if "sb" in line:
        line = line.replace("sb", "好人")
        f2.write(line)
f.close()
f2.flush()
f2.close()
os.remove("夸一夸alex")    # 删除原来文件
os.rename("夸一夸alex_副本", "夸一夸alex")    # 重命名副本为原来的文件名
使用的 with ......as   会自动帮我们关闭文件的连接
# 导入os模块  os表示操作系统
import os
f = open("夸一夸alex", mode="r", encoding="utf-8")
f2 = open("夸一夸alex_副本", mode="w", encoding="utf-8")
 
# with会自动的帮我们关闭文件的链接
with open("夸一夸alex", mode="r", encoding="utf-8") as f, \
     open("夸一夸alex_副本", mode="w", encoding="utf-8") as f2:
    for line in f:
        if "sb" in line:
            line = line.replace("sb", "好人")
            f2.write(line)
# f.close()
# f2.flush()
# f2.close()
# time.sleep(3) # 程序暂停3秒
os.remove("夸一夸alex")   # 删除原来文件
os.rename("夸一夸alex_副本", "夸一夸alex")     # 重命名副本为原来的文件名
实际操作: 水果.txt文档
编号,名称,价格,数量
1,香蕉,1.85,20
2,苹果,2.6,10
3,榴莲,25,200
4,木瓜,3.5,17
f = open("水果.txt", mode="r", encoding="utf-8")
line = f.readline().strip() # 第一行内容,   编号,名称,价格,数量,哈哈
title = line.split(",") # [编号,名称,价格,数量,哈哈]
lst = []
i = 0
 
for line in f:  # 1,香蕉,1.85,50
    dic = {}  # 每行都是一个字典
    line = line.strip()  # 去掉空白  \n 1,香蕉,1.85,50
    data = line.split(",") # [1, 香蕉, 1.85, 50]
 
    for i in range(len(title)):
        dic[title[i]] = data[i]
 
 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

day 08 文件操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

day 08 文件操作

文件操作  - >open()  打开f = open(文件路径,mode='模式',encoding='编码格式') 最最底层操作的是bytes,打开一个文件的时候获取到的是一个文件的句柄从文件中读取数据f.read()  读取文档的内容
2023-01-30

day 8 - 1 文件操作

文件操作注意:1. r+ 最为常用2.encoding 的编码格式一定要与文件编码格式一致读取 r  rb#在本地创建 txt 格式的文件默认使用 gbk 格式f = open('e:/py/file.txt',mode='r',encod
2023-01-30

day 8 - 2 文件操作练习

注册登录需求:1.对账号密码的长度进行限制并不允许出现特殊字符2.把账号密码储存进文件中3.密码最多输入错误三次#分别判断注册时账号密码的长度与特殊字符flag=1while flag: y=0 x=0 username
2023-01-30

python 文件操作api(文件操作函数)

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来
2022-06-04

文件操作

文件操作一、关于文件读写的笔记(一) 文件概述文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容文件都是按照2进制进行存储的,但在表现形式上有2种:文本文件和二进制文件。1. 文本文件  文本文件一般由单一特定编码的字符组成,如u
2023-01-31

python 文件操作

python基本的文件操作,包括 open,read,write对文件操作流程:1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件新建一个txt文件,内容是《Yesterday When I Was Young
2023-01-30

Python3 文件操作

Python3 文件操作打开方式手动挡open+close自动挡with,自关闭常见操作w, r, a, bwritereadlinereadlinesseektellread相关模块fnmatchglobpickleStringIOshe
2023-01-31
2023-09-05

python文件操作

1. 文件操作 open 打开 f = open(文件路径, mode="模式", encoding="编码格式") 最最底层操作的就是bytes 打开一个文件的时候获取到的是一个文件句柄.
2023-01-30

20190221-文件操作

假定一个全英文的文件,读取该文件,请统计多少个不重复的单词,并且在另外一个文件中写上结果每个单词出现的次数,以及一共有多少个不重复的单词分别为哪些 注意:文件中可能包含特殊符号Step1:打开文件,可使用方法如下:  方法1:fp = op
2023-01-30

python 操作文件

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。操作前需要 import os;返回当前目录,不包括文件名: os.getcwd();返回指定目录下的所有文件和目录名:os.listdir("dirn
2023-01-31

python---文件操作

一、对文件操作流程1.打开文件,得到文件句柄并赋值给一个变量2.通过文件句柄对文件进行操作3.关闭文件二、文件打开模式f = open("file_test","r",encoding = "utf-8")    #打开文件,“读模式”,只
2023-01-31

Python3文件操作

打印到屏幕产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式。这个函数传递表达式转换为一个字符串,如下结果写到标准输出 -#!/usr/bin/python3print ("Python is really a g
2023-01-31

python_文件操作

一、文件处理基本形式 # 1. 打开文件,得到文件句柄并赋值给一个变量# 文件句柄 = open('文件路径', '模式', '操作文件的字符编码')f = open('carter', 'r', encoding='UTF-8') #
2023-01-30

python-文件操作

文件操作1.  读 / 写 操作读取: r (read):只能读不能写,文件不存在就报错​#打开文件:    object = open('某txt文件',mode = 'r',encoding = '编码')​#读取文件所有内容到内存:
2023-01-31

python3--文件操作

python文件操作文件以什么编码存储,就以什么编码打开参数:1 文件路劲2 编码方式3 执行动作(打开方式):只读,只写,追加,读写,写读例子现有一个文档,制服护士空姐萝莉联系方式.txt,怎么用python打开?f=open(D:\制服
2023-01-30

Python--文件操作

文件处理流程1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件 r模式,默认模式,文件不存在则报错w模式,文件不存在则创建,文件存在则覆盖a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写
2023-01-30
2023-10-20

Python12 文件操作

文件操作Pycharm使用UTF-8格式,而Windows默认是GBK格式,所以默认pycharm是处理不了BGK格式的,所以要要定义使用UTF-8格式打开Windows文件的内容。.read():读取文件所有内容。同样是读取文件内容,但是
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录