第7章 文件读取操作

news2024/12/23 11:00:55

7.5 用python操作文件的3种模式

在这里插入图片描述
读的模式打开只能读,写模式打开只能写。
类似于word的只读模式
所以python打开文件得🔝文件

文件打开模式(文本模式)
在这里插入图片描述

[DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open("name_list",mode="w")

f.write("张三")
f.write("李四")

f.close()[DEV (v.v) sa_cluster@hybrid01 ~]$ cat name_list 
张三李四[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ 

##文件已经存在就会覆盖
[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
[DEV (v.v) sa_cluster@hybrid01 ~]$ cat name_list 
张三
李四
[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$  cat test.py 
f = open("name_list",mode="w")

f.write("张三\n")
f.write("李四\n")

## 文件只能写不能读,所以读会报错
DEV (v.v) sa_cluster@hybrid01 ~]$  cat test.py 
f = open("name_list",mode="w")

f.write("张三\n")
f.write("李四\n")
f.read()         ##添加了这行
f.close()

[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
Traceback (most recent call last):
  File "/home/sa_cluster/test.py", line 5, in <module>
    f.read()
io.UnsupportedOperation: not readable


####同理,读模式不能写
[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
Traceback (most recent call last):
  File "/home/sa_cluster/test.py", line 3, in <module>
    f.write("张三\n")
io.UnsupportedOperation: not writable
[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$  cat test.py 
f = open("name_list",mode="r")

f.write("张三\n")
f.write("李四\n")
f.read()
f.close()[DEV (v.v) sa_cluster@hybrid01 ~]$ 


## 正常读,打印
DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
张三
李四

[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open("name_list",mode="r")

# f.write("张三\n")
# f.write("李四\n")
print(f.read())
f.close()[DEV (v.v) sa_cluster@hybrid01 ~]$ 



## 只想读部分
比如只想读第一行

[DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open("name_list",mode="r")

# f.write("张三\n")
# f.write("李四\n")
print(f.read())
print('-------------')
print(f.readline())      ##光标已经到最后一行了,所以这里为空行
[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
张三
李四

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

[DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open("name_list",mode="r")


print(f.readline())
print('-------------')
print(f.read())


[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
张三
                           ##这一行是因为readline自己带了换行符,然后print打印出来了
-------------
李四

追加模式
在这里插入图片描述
追加的时候也是只能写,不能读,读会报错
追加就是写日志的时候比较适合使用。

7.6 遍历文件

DEV (v.v) sa_cluster@hybrid01 ~]$ cat name_list 
张三  深圳  173  48        ##其实每一行最后都有一个\n
李四  北京  182  32
王武  南京  178  64
收到  上海  163  50
发到  西安  183  32
地方  湖北  123  77
如果  宁夏  170  65[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
张三  深圳  173  48 

李四  北京  182  32

王武  南京  178  64

收到  上海  163  50

发到  西安  183  32

地方  湖北  123  77

如果  宁夏  170  65
[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open('name_list')
for lie in f:
    print(lie)         



[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
['张三  深圳  173  48 \n', '李四  北京  182  32\n', '王武  南京  178  64\n', '收到  上海  163  50\n', '发到  西安  183  32\n', '地方  湖北  123  77\n', '如果  宁夏  170  65']
[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open('name_list')
print(f.readlines())
# for lie in f:
#     print(lie)
    [DEV (v.v) sa_cluster@hybrid01 ~]$ 




分成列表

[DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open('name_list')
for lie in f:
    lie = lie.split()
    print(lie)
    [DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
['张三', '深圳', '173', '48']
['李四', '北京', '182', '32']
['王武', '南京', '178', '64']
['收到', '上海', '163', '50']
['发到', '西安', '183', '32']
['地方', '湖北', '123', '77']
['如果', '宁夏', '170', '65']

###拿三四列
DEV (v.v) sa_cluster@hybrid01 ~]$ cat test.py 
f = open('name_list')
for lie in f:
    lie = lie.split()
    # print(lie)
    heigt = lie[2]
    weight= lie[3]
    if int(heigt) >= 170 and int(weight) <= 50:
        print(lie)
    [DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ 
[DEV (v.v) sa_cluster@hybrid01 ~]$ python3 test.py 
['张三', '深圳', '173', '48']
['李四', '北京', '182', '32']
['发到', '西安', '183', '32']




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1186054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes集群编排(7)

目录 k8s认证授权 pod绑定sa 认证 授权 k8s认证授权 pod绑定sa [rootk8s2 ~]# kubectl create sa admin //在当前 Kubernetes 集群中创建一个名为 "admin" 的新服务账户[rootk8s2 secret]# vim pod3.yaml apiVersion: v1 kind: Pod metadata:name: mypod spec…

【机器学习4】降维

常见的降维方法有主成分分析、 线性判别分析、 等距映射、 局部线性嵌入、 拉普拉斯特征映射、 局部保留投影等。 1 PCA最大方差角度理解 PCA无监督学习算法。 PCA的目标&#xff0c; 即最大化投影方差&#xff0c; 也就是让数据在主轴上投影的方差最大。 在黄线所处的轴上&…

Jekyll框架编译GithubPages,提示没有docs

Jekyll Converters::Scss build issue: No such file or directory dir_chdir - /github/workspace/docs Error: No such file or directory dir_chdir - /github/workspace/docs 解决方案&#xff1a; 修改github page仓库中–> 设置—> pages 把里面的\docs&#xf…

【星海出品】flask 与docker

import os from flask import Flask, request from flask import Response, make_response, jsonify import cv2 import base64 import io import uuid from main import eye ​ app Flask(__name__)​ app.route(/, methods[GET, POST]) # 添加路由blend def upload_file():…

2023 全栈工程师 Node.Js 服务器端 web 框架 Express.js 详细教程(更新中)

Express 框架概述 Express 是一个基于 Node.js 平台的快速、开放、极简的Web开发框架。它本身仅仅提供了 web 开发的基础功能&#xff0c;但是通过中间件的方式集成了外部插件来处理HTTP请求&#xff0c;例如 body-parser 用于解析 HTTP 请求体&#xff0c;compression 用于压…

dgl安装教程

我在矩池云服务器上安装了一个dgl的环境&#xff0c;以后都可以用这个了 首先我的基础环境是 最终的版本如下 安装步骤如下 pip install dgl0.9.1 -f https://s3.us-west-2.amazonaws.com/dgl-data/wheels/cu113/repo.html注意不能直接使用 pip install dgl -f https://s…

Nginx网关配置

安装Nginx 下载最新版本Nginx nginx: download 解压 双击nginx.exe启动 浏览器访问 localhost 看到如下界面 微服务准备 准备两个服务&#xff0c;例如&#xff1a;product微服务和order微服务 分别启动后&#xff0c;访问相应服务接口 product服务 http://localhost:9001/…

detectron2环境搭建及自定义coco数据集(voc转coco)训练

detectron2建议ubuntu进行环境搭建&#xff0c;Windows大概率报错 一 环境搭建 创建虚拟环境 conda create -n detectron2 python3.8 -y conda activate detectron2后面下载源代码建议存到git中再git clone git clone https://github.com/facebookresearch/detectron2.git …

王道p40 1.设计一个递归算法,递归删除单链表L中所有值为x的结点(c语言)

视频讲解在这里&#xff1a;&#x1f447; p40 第1题 王道数据结构课后代码题c语言代码实现_哔哩哔哩_bilibili 本题代码如下 void delete(linklist* L,int x)//递归删除x {if((*L)->next! NULL){if ((*L)->next->data x)//找到x{lnode* p (*L)->next;(*L)-&…

【第2章 Node.js基础】2.2 Node.js回调函数

学习目标 &#xff08;1&#xff09;理解Node.js的回调函数&#xff1b; &#xff08;2&#xff09;掌握回调函数的使用。 什么是回调函数 回调函数是一种特殊的函数&#xff0c;它作为参数传递给另一个函数&#xff0c;并在特定的事件或条件发生时被调用。回调函数通常用于异…

FreeRTOS学习笔记——SysTick中断

FreeRTOS学习笔记——SysTick中断_freertos tick中断-CSDN博客 FreeRTOS 之六 任务调度原理解析&#xff08;Systick、PendSV、SVC&#xff09;_freertos m0-CSDN博客 FreeRTOS中关于时间的管理分为两部分&#xff1a;一部分是任务的延时管理;前面叙述过一些&#xff0c;还有…

找不到d3dx9_43.dll怎么办?解决d3dx9_43.dll丢失的5个方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到d3dx9_43.dll”。这个错误通常出现在运行某些游戏或应用程序时&#xff0c;它是由于缺少DirectX组件中的d3dx9_43.dll文件所引起的。那么&#xff0c;当我们遇到这个问题时&#xff…

JWT 使用入门(三)请求流程

文章目录 1、前后端使用JWT详细步骤2、前后端使用JWT详情图3、从流程中看优点与缺点3.1 优点3.2 缺点 之前在第一篇中提到过其使用流程&#xff0c;以下讲的是第二种&#xff1a;https://blog.csdn.net/qq_37534947/article/details/132066909 但是JWT主要作用应该应用于以下&a…

Android sqlite 使用简介

进行Android应用开发时经常会用到数据库。Android系统支持sqlite数据库&#xff0c;在app开发过程中很容易通过SQLiteOpenHelper使用数据库&#xff0c;SQLiteOpenHelper依赖于Context对象&#xff0c;但是基于uiatomator1.0和Java程序等无法获取Context的应用如何使用数据库呢…

SAP实现文本框多行输入(类cl_gui_textedit)

先看效果&#xff0c;在输入框先来一段《赤壁赋》 然后点击 ‘保存输出’按钮&#xff0c;就能把输入内容从表里读取并输出来 源代码&#xff1a; *&---------------------------------------------------------------------* *& Report ZCYCLE060 *&---------…

如何避免JavaScript中的内存泄漏?

前言 过去&#xff0c;我们浏览静态网站时无须过多关注内存管理&#xff0c;因为加载新页面时&#xff0c;之前的页面信息会从内存中删除。 然而&#xff0c;随着单页Web应用&#xff08;SPA&#xff09;的兴起&#xff0c;应用程序消耗的内存越来越多&#xff0c;这不仅会降低…

13 套接字Socket

1、Socket 编程 socket编程基于 TCP 和 UDP 协议的tcp和udp是区分客户端和服务端的&#xff0c;所以我们的socket编程也是区分的。 2、socket是端到端的通信 1.Socket 这个名字很有意思&#xff0c;可以作插口或者插槽讲 2.一头插在客户端&#xff0c;一头插在服务端&#x…

阿里云双11优惠活动:2核2G3M云服务器1年99元,新老用户均可购买!

阿里云双11优惠活动正在火热进行中&#xff0c;阿里云推出了一款特价云服务器ECS&#xff0c;2核2G3M的配置1年仅需99元&#xff0c;新老用户均可购买&#xff0c;新购、续费同价&#xff01; 活动入口&#xff1a;传送门>>> 活动详情&#xff1a; 云服务器ECS&#…

Bitget Wallet:使用 Base 链购买 ETH 的简明教程

Base 链是一种 Layer 2&#xff08;L2&#xff09;公链&#xff0c;它可以为用户提供以太坊&#xff08;ETH&#xff09;代币&#xff0c;而 Bitget Wallet 是一款多功能加密货币钱包&#xff0c;支持 Base 链以及其他主要区块链。

三天打鱼两天晒网

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为选择结构编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 二、题目分析 三、解题 程序运行代码 #include<stdio.h> int main(){int n;scanf("%d",&n);i…