分享

Python文件与数据格式化

 馆藏室101 2022-02-17

一、标准库OS常用命令

需要先自建一个文件夹,并将当前目录修改为该文件夹。

import os
os.getcwd()   #查看当前路径
os.chdir("C:/Users/盛小胖yx/Desktop/Python")    #修改当前路径
os.mkdir("my_study")    #建立一个子文件夹,已存在时会报错
os.rmdir("my_study")    #删除一个子文件夹,不存在时会报错
os.listdir()   #列出当前目录或者指定目录下所有文件夹以及文件的名称,返回一个列表
os.rename('a.txt','b.py')    #修改文件或文件夹的名称
os.remove('a.py')      #删除一个文件

在这里插入图片描述建立一个子文件夹并在该文件夹下再建立三个子文件夹,添加前缀在这里插入图片描述在这里插入图片描述

二、文件的打开与关闭

文件是一个存储在辅助存储器上的数据序列,可以包含任何 数据内容。概念上,文件是数据的集合和抽象,类似地,函 数是程序的集合和抽象。用文件形式组织和表达数据更有效 也更为灵活。文件包括两种类型:文本文件和二进制文件。

二进制文件直接由比特0和比特1组成,没有统一字符 编码,文件内部数据的组织格式与文件用途有关。二进制 文件和文本文件最主要的区别在于是否有统一的字符编码 无论文件创建为文本文件或者二进制文件,都可以用 “文本文件方式”和“二进制文件方式”打开,打开后的 操作不同。

1、文件的打开

文件对象 = open('文件名’,'使用方式’)

类型用法
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

在这里插入图片描述f.read() #文件读取,读完一次后,指针位于文档最后,再次读取内容为空。标示符’r’表示读。
在这里插入图片描述f.read() 会一次性读取文件的全部内容,若文件太大内存可能就不够用。

  • read()方法可以从指定文件中读取指定字节的数据,定义为:read(size)其中参数size用于指定从文件中读取的数据的字节数,若没有参数,则依次读出指定文件中的所有内容。

  • 调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。
    在这里插入图片描述

2、文件的关闭

f.close()

程序执行完毕后,系统会关闭由该程序打开的文件,但更好的做法,是在文件使用完毕后,由程序调用close()方法关闭文件。因为当文件以缓冲方式打开时,磁盘文件与内存间的读写并不是即时的,若程序因异常关闭,可能导致缓冲区中的数据无法写入文件,造成数据丢失。所以在文件使用完毕后,建议用close()关闭文件。

3、文件的读写

Python中提供了一些文件读写的方法。
(1)、write(s)
文件对象.write(s) 其中s是待写入文件的字符串(文件对象需要时可写入的对象)
在这里插入图片描述在这里插入图片描述
(2)、tell()
用户可以通过tell()方法获取文件当前的读写位置。
在这里插入图片描述
(3)、seek()
seek()方法可以控制文件的读写位置,实现文件的随机读写。
定义:f.seek(offset,form)
offset表示偏移量,即读写位置需要移动的字节数,from用于指定文件的读写位置。

  • from = 0:表示文件开头

  • from = 1:表示使用当前位置

  • from = 2:表示文件末尾
    在这里插入图片描述

三、文件编码

  • GBK编码:中文字符包含简体和繁体字符,每个字符仅能存储简体中文字符 汉字占二字节

  • UTF-8编码:全球通用的编码(默认使用)汉字占三字节

文件打开时,可以指定用encoding参数指定编码例如:

f = open('x.txt','wt',encoding = 'utf-8')

文件编码直接决定了文件的空间大小

要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
在这里插入图片描述

遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略。

参考链接

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多