文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python处理文件的几个常用小知识

2024-12-03 18:36

关注

[[349225]]

1 、读取文件数据

文本文件可存储的数据量非常丰富,像天气数据、交通数据、文学作品等。每当我们需要分析或修改储存在文件中的信息时,读取文件就显得尤为重要。想读取一个文件的信息,我们可以一次性读取全部内容,也可以每次一行逐步读取。

读取整个文件

我们先来创建一个包含几行文本的文件,在编辑器中输入以下数据行,保存为 txt 格式:

 

  1. pi.txt: 
  2. 3.1415926535 
  3.   8979323846 
  4.   2643383279 

打开并读取该文件:

 

  1. with open('pi.txt'as file: 
  2.     contents = file.read() 
  3.     print(contents) 

在这行程序中,出现了两个函数open( )和read( )。

函数open( )用于打开一个文件,它接受的参数是要打开文件的名称,Python 会在当前执行的文件目录中查找指定的文件,然后返回一个表示文件的对象。

方法read( ) 用于读取这个文件的全部内容,并将其作为一个长长的字符串储存在变量contents中。但这段程序的运行结果大家可以尝试一下,它会把这个文本的内容全部输出并在最后多出一行空行,这是因为read( )到达文件末尾时会返回一个空字符串,显示在结果就是一个空行。如果想要删除末尾的空行,可以在print中使用rstrip( ):

 

  1. print(contents.rstrip()) 

关于文件路径,我们需要注意的是,Linux 系统和 windows 有一点不同:

在Linux和OS X中(使用斜杠/):

 

  1. with open('files/filename.txt'as file_object: 

在Windows中(使用反斜杠\):

 

  1. with open('files\filename.txt'as file_object: 

逐行读取

如果想每次一行的读取文件,可对文件对象使用for循环:

 

  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.    for line in file: 
  5.         print(line)    

同样,为了删除每一行多余出来的空行,我们可以使用rstrip( ):

 

  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.    for line in file: 
  5.         print(line.rstrip())    

创建一个包含文件各行内容的列表

当使用with时,open( )返回的文件对象只能在with代码块内使用。如果想要在代码块外访问文件内容时,我们可以在with代码块内将文件的各行储存在一个列表中,并在with代码块外使用该列表访问。

 

  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.   lines = file.readlines() 
  5.  
  6. for line in lines: 
  7.     print(line.rstrip()) 

方法readlines( )表示从文件中读取每一行,并将其储存在一个列表中。

使用文件内容

 

  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.    lines = file.readlines() 
  5.  
  6. ss='' 
  7. for line in lines: 
  8.     ss += line.strip() 
  9. print(ss) 

该程序运行结果为:3.141592653589793238462643383279

 2 、写入文件

写入空文件

将文本写入文件,可以在调用open( )时提供另一个实参。即打开文件时,可以指定需要的模式:'r'读取模式,'w'写入模式,'a'附加模式,'r+'读取和写入模式。python 默认只读模式。

 

  1. with open(filename,'w'as file: 
  2.     file.write("abcdefg"

注意:python 只能将字符串写入文本文件,如果想把数值数据储存到文本文件,必须先使用函数str( )将其转为字符串格式。

写入多行

 

  1. with open(filename,'w'as file: 
  2.     file.write("abcdefg\n"
  3.     file.write("hijklmn\n"

存储数据python中常使用json来存储数据。json可以将简单的python数据结构转存到文件中,并在程序再次运行时加载该文件中的数据。

JSON数据格式并非python专用,它是一种常用的数据格式,很有用,也易于学习。

json.dump( ) 和 json.load( )

这两个函数分别用于储存数据和加载数据。json.dump() 接受两个实参:要储存的数据和用于储存数据的文件对象。json.load() 用于加载存储在json文件中的信息。

 

  1. import json 
  2. num = [1,2,3,4,5] 
  3. filename = 'a.json' 
  4. with open(filename,'w'as f: 
  5.     json.dump(num,f) 

 

  1. with open(filename) as f: 
  2.     num = json.load(f) 
  3. print(num) 

这是一种在程序之间共享数据的简单方式。

实现一个小功能

下面这个程序可以实现我们常常在游戏开头时遇到的一个小功能,一起来试试吧!

 

  1. import json 
  2. # 如果以前储存了用户名就加载它,否则,就提示用户输入名字并存储 
  3. filename = 'name.json' 
  4. try: 
  5.     with open(filename) as f: 
  6.         username=json.load(f) 
  7. except FileNotFoundError: 
  8.     name = input("你叫什么名字?"
  9.  with open(filename,'w'as f: 
  10.      json.dump(name,f) 
  11.      print("我们会记住你的,"+name+"!"
  12. else
  13.     print("欢迎回来,"+name+"!"

 

来源:Python数据之道内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯