当前位置: 首页 > news >正文

Python中csv文件的操作2

在《Python中文件的读取2-1》

中提到,每当不需要操作文件时,需要把通过open()函数打开的文件再通过close()关闭掉。

1 不关闭已打开的文件带来的影响

使用如图1所示的代码,不关闭已经打开的文件。

图1 不关闭已经打开的文件

从图1中可以看出,第2行代码打开了D盘根目录下“水果.csv”文件,在去读内容并且显示内容后,并没有调用close()函数关闭该文件;第5行代码调用了os模块中的system()函数,使得程序并没有马上结束,而是处于“暂停”状态,来模拟python程序在做其它事情。

运行图1显示的程序,效果如图2所示。

图2 程序运行效果

从图2中可以看出,程序在输出了读取到的内容之后,就处于“暂停”状态了,此时不要关闭该控制台窗口,让程序继续运行。此时,如果去删除或者移动“水果.csv”文件,就会显示如图3所示的提示信息。

图3 删除文件时的提示信息

也即是无法删除或者移动“水果.csv”文件,因为此时该文件被图1所示的程序所占用,只有该程序结束后,才能删除或移动“水果.csv”文件。

注意1 在没有close已打开的文件时,可以读取和修改文件内容,但是不能删除或移动该文件。

2 with as语句打开csv文件

使用with as语句打开csv文件,在该语句结束后,会自动关闭已打开的程序,代码如图4所示。

图4 使用with as语句打开csv文件

第2行代码使用with as语句打开csv文件,with和as的中间是打开文件的语句,as之后表示打开文件保存的变量;第3-4行表示打开文件后要做的事情,即读取文件内容并显示,此时with as语句结束,自动关闭已打开的文件,也就是说,虽然此时没有显式调用close()函数,但是“水果.csv”文件已经隐式地被关闭。

运行图4所示的程序,在保证程序处于“暂停”状态时,可以成功删除“水果.csv”文件。

当编写操作csv文件的代码时,可以使用with as语句打开csv文件,这样即使忘记调用close()函数关闭文件,也不影响后续操作。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 3DsMax将两个模型的UV展到一个UV上面
  • 启动kafka
  • 网安新声 | 网易云音乐崩了:网络安全如何守护在线体验
  • 操作系统线程分离
  • 数学建模学习(128):使用Python结合CILOS与熵法的多准则决策权重确定
  • 浏览器发送HTTP请求的过程
  • ABC 368 G - Add and Multiply Queries
  • [Day 63] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • PyTorch踩坑记录1
  • SQLserver中的DATEADD使用、avg使用、Round使用
  • iOS profiles文件过期如何更新
  • Linux环境下使用Git把代码上传到云端
  • Codeforces Round 968 (Div. 2 ABCD1D2题) 视频讲解
  • 【计算机组成原理】汇总三、存储系统
  • 机械学习—零基础学习日志(如何理解概率论4)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • android 一些 utils
  •  D - 粉碎叛乱F - 其他起义
  • Hexo+码云+git快速搭建免费的静态Blog
  • JavaScript设计模式系列一:工厂模式
  • Javascript设计模式学习之Observer(观察者)模式
  • java概述
  • Quartz初级教程
  • Spring声明式事务管理之一:五大属性分析
  • 分布式任务队列Celery
  • 回顾2016
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 前端js -- this指向总结。
  • 思维导图—你不知道的JavaScript中卷
  • 因为阿里,他们成了“杭漂”
  • ​iOS实时查看App运行日志
  • ### RabbitMQ五种工作模式:
  • #Linux(权限管理)
  • (1) caustics\
  • (C++17) optional的使用
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (附源码)计算机毕业设计ssm电影分享网站
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (每日一问)基础知识:堆与栈的区别
  • (七)Activiti-modeler中文支持
  • (四)JPA - JQPL 实现增删改查
  • (源码分析)springsecurity认证授权
  • (转) Face-Resources
  • (转)母版页和相对路径
  • (转)我也是一只IT小小鸟
  • (转载)(官方)UE4--图像编程----着色器开发
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET CLR Hosting 简介
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net连接oracle数据库
  • .NET性能优化(文摘)