Python文件读写保存操作的示例代码


Posted in Python onSeptember 14, 2018

记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项。

单个文件的读操作:

我们先假设一个需求如下:

  • 读取一个test.txt文件
  • 删除指定字符之前的文本

需求明白之后,下面开始动手写代码,代码很简单。就直接上全部的,细节看注释:

import sys

filePath = "/Users/xxxxxx/Desktop/test.txt"
# 打开文件
files = open(filePath, 'r')
# 转成list
f_list = files.readlines()


tempIndex = 0
# 对f_list 循环 每个index对应一行数据
for index in range(len(f_list)):
  # temp是获取一行的数据
  temp = f_list[index]
  # 判断"test"是不是temp这行数据的首位 如果是首位 result为true
  result = temp.find("test") == 0

  if result:
    # 如果是首位 这就是我们要删除的位置 获取他的index
    tempIndex = index
    break
# 存放新数据
tempContainer = []

for index in range(len(f_list)):
  if index > tempIndex:
    # tempIndex之前的数据我们不处理,把tempindex之后的数据存到新的list里面
    tempContainer.append(f_list[index])
# 这就获得了我们需要的新数据
print(tempContainer)

以上代码就完成了需求,非常简单。有几个注意点:

  • 直接用open获取的数据无法进行处理,所以先转成可以处理的数据,比如list或者字典等。
  • python的open和C的类似,有r,r+, w, w+等各种状态,见具体介绍

open函数的常见操作方式

1、r 打开只读文件,该文件必须存在。
2、r+ 打开可读写的文件,该文件必须存在。
3、w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
4、w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

多文件读写保存

假设一个需求如下:

  • 多个文件都要处理
  • 和上面的test.txt处理方式类似
  • 处理完之后保存到一个新文件夹内

其实这个需求实质上只是比单文件读操作只多了一个写操作。其他的就是逻辑稍微绕一下

  • 怎么同时操作多个文件
  • 然后怎么保存成多个文件

肯定是不能一个文件一个文件的去操作,太麻烦了。说下我的实现思路:

  • 把文件放在一个文件夹内
  • 获取这个文件夹内所有的文件名,拼接成文件路径
  • 然后创建一个空的新文件夹,用新的空文件夹加上原始的文件名拼接成新的路径然后写入进去

下面上代码:

import os

# 初始的文件夹路径
filePath = "/Users/xxxxxxxx/Desktop/fileDocument"
# 存放新文件的空白文件夹
newFilePath = "/Users/xxxxxxxx/Desktop/newFileDocument"

# 获取文件夹下所有文件名
fileNames = os.listdir(filePath)

for file in fileNames:
  # 如果当前的文件名包含了'txt',就当它是正确的文件(并不严谨)
  if file.find("txt") >= 0:
    # 拼接成我们要读取的完整路径
    fileFullPath = filePath + "/" + file
    # open 函数 默认是 'r'类型 ,
    singleFile = open(fileFullPath)
    # 转换成list数据
    singleFile_list = singleFile.readlines()

    tempIndex = 0
    for index in range(len(singleFile_list)):
      temp = singleFile_list[index]
      result = temp.find("min") == 0
      if result:
        tempIndex = index
        break

    # 拼接新的文件路径
    newSingleFileFullPath = newFilePath + "/" + file
    # 以 w 方式打开新的空白文件
    newFile = open(newSingleFileFullPath, 'w')
    for index in range(len(singleFile_list)):
      if index > tempIndex:
        # 写入tempindex行之后的数据
        newFile.writelines(singleFile_list[index])

    newFile.close()

上面的代码其实没啥要介绍的,就是一个for循环然后逻辑和单个文件读操作一样,只是多了个写操作。

End

这只是自己因缘巧合写的一些简单的实现,并没有去系统的学习Python,好多API不了解,可能这种处理不是很好,没注重性能,没多线程。等以后深入学习了再优化。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python在校内发人人网状态(人人网看状态)
Feb 19 Python
深入讲解Python中面向对象编程的相关知识
May 25 Python
python二分查找算法的递归实现方法
May 12 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
python僵尸进程产生的原因
Jul 21 Python
Numpy掩码式数组详解
Apr 17 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
python中退出多层循环的方法
Nov 27 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
Python3安装pip工具的详细步骤
Oct 14 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
python一键去抖音视频水印工具
Sep 14 #Python
python入门:这篇文章带你直接学会python
Sep 14 #Python
Python函数any()和all()的用法及区别介绍
Sep 14 #Python
Python连接Redis的基本配置方法
Sep 13 #Python
Python线程下使用锁的技巧分享
Sep 13 #Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
Sep 13 #Python
python中字符串内置函数的用法总结
Sep 13 #Python
You might like
php 在线打包_支持子目录
2008/06/28 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Python使用Supervisor来管理进程的方法
2015/05/28 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
python+opencv实现动态物体识别
2018/01/09 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
技术总监管理岗位职责
2014/03/09 职场文书
机电一体化求职信
2014/03/10 职场文书
体育之星事迹材料
2014/05/11 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
事业单位考察材料范文
2014/12/25 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
刑事附带民事代理词
2015/05/25 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers