[转帖]Python基础之文件处理(二)

python,基础,文件,处理 · 浏览次数 : 0

小编点评

**文件处理方法** ```python # 打开文件 f = open('testfile','w+',encoding='utf-8') # 写内容 f.write('人生苦短,我学python\n') # 关闭文件 f.close() ``` **文件打开方式** * `'r'`:只读模式打开文件,如果文件不存在就报错。 * `'w'`:写模式打开文件,如果文件存在就覆盖现有内容。 * `'a'`:追加模式打开文件,如果文件存在先清空现有内容。 * `'r+'`:读写可读模式打开文件,可以读取和写入。 * `'w+'`:读写可写模式打开文件,可以读取和写入,但如果文件存在,会创建一个新的文件。 * `'a+'`:读写可追加模式打开文件,可以读取和写入,但如果文件存在,会在文件的最后追加写入内容。 * `'r-'`:读取文件从末尾开始。 * `'w-'`:写读模式打开文件,可以读取和写入,但如果文件存在,会清空文件内容。 **其他** * `encoding`:指定文件的编码格式。默认值为 `utf-8`。 * `close()`:关闭文件。 * `closed`:返回 True,如果文件已关闭;False,如果文件还没关闭。 * `fileno()`:返回文件的索引。 * `readable()`:返回 True,如果文件支持读取;False,如果文件不支持读取。 * `seek()`:设置光标到指定位置。 * `truncate()`:截断文件,从头开始切。 * `readline()`:读取文件一行,并返回字符串。 * `read()`:读取文件内容,并返回字符串。 * `with` 语句:使用上下文管理机制自动打开、读取和关闭文件。

正文

https://www.jianshu.com/p/7dd08066f499

 

Python基础文件处理

python系列文档都是基于python3

一、字符编码
  1. 在python2默认编码是ASCII, python3里默认是utf-8;

  2. unicode分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-8就是unicode;

  3. 在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string;

  4. 内存固定使用Unicode编码,硬盘的编码可以修改(即可以修改的软件编码);

  5. 使用什么编码往硬盘存,就用什么编码去读;

  6. 程序运行分两个阶段:
      - 从硬盘读到内存
      - python解释器运行读到内存里的代码

  7. 针对.py文件,python与nodpad++\vim的区别是多了运行已经读到内存里的代码.

二、文件处理
  • open函数操作
    • 第一个参数:文件名路径和名称
    • 第二个参数:mode,文件打开的方式
f = open('filename', 'mode')
f.close()
  • 模式
模式操作说明
r 只读(read-only) 默认模式,以只读方式打开文件,如果文件不存在就报错,存在就正常读取
w 写(write) 如果文件不存在,新建文件然后写入;如果存在,先清空文件内容,再写入
a 追加(append) 如果文件不存在,新建文件然后写入;如果存在,在文件的最后追加写入
x 创建 如果文件存在则报错,如果不存在就新建文件,然后写入内容,比w模式更安全
b 二进制方式 binary方式,二进制写入;比如rb、wb、ab,以bytes类型操作数据
+ 读写 可读又可写双模式;比如r+、w+、a+
#r,读模式,open命令默认是读模式
f = open('testfile','r',encoding='utf-8')
print(f.read())

#w,写模式,如果没有文件会创建
f = open('testfile','w',encoding='utf-8')
f.write('人生苦短,我学python\n')
f.close()

#a,追加模式
f = open('testfile','a',encoding='utf-8')
f.write('keep keep !\n')
f.close()

#r+,读写 可读,追加内容到最后
f = open('testfile','r+',encoding='utf-8')
f.readline()
f.write('devops\n')

#w+,写读  新建文件,写入再读取
f = open('testfile','w+',encoding='utf-8')
f.readline()
f.write('devops2\n')

# a+,追加读 清空源文件,再添加,然后读取
f = open('testfile','w+',encoding='utf-8')
f.readline()
f.write('devops3\n')

#删除,打开一个文件写入空即删除
f = open('testfile','r+',encoding='utf-8')
f.readline()
f.write('')
  • 文件处理方法
f = open('testfile','w+',encoding='utf-8')
f.close()
f.closed    #判断操作的文件是否关闭
f.encoding  #打印文件的编码格式
f.fileno()  #返回操作系统接口文件索引<网络编程,I/O复用>
f.flush()   #刷新操作
f.isatty()  #判断打开的文件是否是终端文件
f.name      #打印文件名
f.newlines  #未读取到行分隔符时为 None,只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束符的列表
f.readable()    #同isatty类似
f.seek()    #移动光标,到固定位置返回此位置以后的内容(按照字符移)
f.tell()    #打印光标所在位置的索引
f.truncate()    #截断,配合seek,括号内指定保留字符数量,从头开始切
f.writelines()  #写列表到文件
  • with语句
    • with语句是一种上下文管理协议技术(ContextManagemenProtocal)
    • 自动判断文件的作用域,自动关闭已打开且不在使用的文件句柄
    #readline函数,一行一行读取
    with open(r'test.txt','r',encoding='utf-8') as f:
      strline = f.readline()
      while strline:
          print(strline)
          strline = f.readline()
    
    with open(r'test.txt','r',encoding='utf-8') as f:
      #以打开的文件f作为参数,创建列表
      l = list(f)
      #打印出列表内容
      for i in l:
          print(i)
    
    #read函数,是按照字符读取文件内容;默认读取所有
    with open('test.txt', 'r', encoding='utf-8') as f:
      strchar = f.read()
      print(strchar)

与[转帖]Python基础之文件处理(二)相似的内容:

[转帖]Python基础之文件处理(二)

https://www.jianshu.com/p/7dd08066f499 Python基础文件处理 python系列文档都是基于python3 一、字符编码 在python2默认编码是ASCII, python3里默认是utf-8; unicode分为 utf-32(占4个字节),utf-16(

[转帖]Python基础之数据类型(一)

https://www.jianshu.com/p/5c43f6056f77 Python基本数据类型 python系列文档都是基于python3 数字 字符串 列表 元组 字典 集合 一、数字 特性: 只能存放一个值 一经定义,不可更改 直接访问 整型十进制转二进制bin(10)十进制转八进制oc

[转帖]利用Python调用outlook自动发送邮件

↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件。而在outlook中我们一般是没有权限去开启smtp服务的,所以一般只能通过第二种直接调用方式发送邮件 基础版本–

[转帖]利用Python调用outlook自动发送邮件

↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件。而在outlook中我们一般是没有权限去开启smtp服务的,所以一般只能通过第二种直接调用方式发送邮件 基础版本–

[转帖]Python基础之函数(四)

https://www.jianshu.com/p/168e341fb81c 一、函数定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段;比如常用的print(),就是内建函数;通俗来讲,函数就是把代码打包成不通形状的乐高积木,以便可以根据需求调用拼装;当然这种函数叫做自定义函数

[转帖]Python基础之判断和循环(三)

https://www.jianshu.com/p/5a7552821c63 一、判断 关于判断,跟字面意思一样,就是判断某一个时刻应不应该做某件事; 语法: if 判断条件: 执行语句…… else: 执行语句…… 判断条件: <:小于 >:大于 ==:等于 !=:不等于 >=:大于等于 <=:小

【转帖】PyCharm---Django简单例子--基础1

https://www.cnblogs.com/kllay/p/7286701.html 环境: python 2.7 Django 1.11.2 查看版本:python -m django --version 1.新建Django项目 django-admin startproject TestH

[转帖]Python-Curses模块

Python-Curses 什么是Curses?Python Curses模块开始我们的编程吧(启动与结束)重要使用方法(包装用法)Windows and Pads显示文本属性和颜色用户输入 什么是Curses? curses库为基于文本的终端提供独立于终端的屏幕绘制和键盘处理设施;这些终端包括VT

[转帖]linux命令行下如何格式化json并进行各种json处理操作

https://blog.csdn.net/penriver/article/details/122016563 有时需要在linux 的命令行下,需要查看json的内容或针对json进行各种操作,本文针对此进行梳理、总结。 在Linux系统下基于python json.tool可以格式化json,

【转帖】基于paramiko的二次封装

https://www.jianshu.com/p/944674f44b24 paramiko 是 Python 中的一个用来连接远程主机的第三方工具,通过使用 paramiko 可以用来代替以 ssh 连接到远程主机执行命令。 paramiko 模块提供了两个核心组件,分别是 SSHClient