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

发表于:2020-10-30 09:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:投稿君    来源:51CTO

#
Python
分享:
  Python 这门语言有个很大的用途就是使用它来进行文件处理,学会处理文件和保存数据可以让你的程序使用起来更加容易和方便,因此小编为大家准备了几个处理文件常用的几个小知识,快来一起学习吧!
  1 、读取文件数据
  文本文件可存储的数据量非常丰富,像天气数据、交通数据、文学作品等。每当我们需要分析或修改储存在文件中的信息时,读取文件就显得尤为重要。想读取一个文件的信息,我们可以一次性读取全部内容,也可以每次一行逐步读取。
  读取整个文件
  我们先来创建一个包含几行文本的文件,在编辑器中输入以下数据行,保存为 txt 格式:
  pi.txt: 
  3.1415926535 
    8979323846 
    2643383279 
  打开并读取该文件:
  with open('pi.txt') as file: 
      contents = file.read() 
      print(contents) 
  在这行程序中,出现了两个函数open( )和read( )。
  函数open( )用于打开一个文件,它接受的参数是要打开文件的名称,Python 会在当前执行的文件目录中查找指定的文件,然后返回一个表示文件的对象。
  方法read( ) 用于读取这个文件的全部内容,并将其作为一个长长的字符串储存在变量contents中。但这段程序的运行结果大家可以尝试一下,它会把这个文本的内容全部输出并在最后多出一行空行,这是因为read( )到达文件末尾时会返回一个空字符串,显示在结果就是一个空行。如果想要删除末尾的空行,可以在print中使用rstrip( ):
  print(contents.rstrip()) 
  关于文件路径,我们需要注意的是,Linux 系统和 windows 有一点不同:
  在Linux和OS X中(使用斜杠/):
  with open('files/filename.txt') as file_object: 
  在Windows中(使用反斜杠\):
  with open('files\filename.txt') as file_object: 
  逐行读取
  如果想每次一行的读取文件,可对文件对象使用for循环:
  filename='pi.txt' 
   
  with open(filename) as file: 
     for line in file: 
          print(line) 
  同样,为了删除每一行多余出来的空行,我们可以使用rstrip( ):
  filename='pi.txt' 
   
  with open(filename) as file: 
     for line in file: 
          print(line.rstrip()) 
  创建一个包含文件各行内容的列表
  当使用with时,open( )返回的文件对象只能在with代码块内使用。如果想要在代码块外访问文件内容时,我们可以在with代码块内将文件的各行储存在一个列表中,并在with代码块外使用该列表访问。
  filename='pi.txt' 
   
  with open(filename) as file: 
    lines = file.readlines() 
   
  for line in lines: 
      print(line.rstrip()) 
  方法readlines( )表示从文件中读取每一行,并将其储存在一个列表中。
  使用文件内容
  filename='pi.txt' 
   
  with open(filename) as file: 
     lines = file.readlines() 
   
  ss='' 
  for line in lines: 
      ss += line.strip() 
  print(ss) 
  该程序运行结果为:3.141592653589793238462643383279
   2 、写入文件
  写入空文件
  将文本写入文件,可以在调用open( )时提供另一个实参。即打开文件时,可以指定需要的模式:'r'读取模式,'w'写入模式,'a'附加模式,'r+'读取和写入模式。python 默认只读模式。
  with open(filename,'w') as file: 
      file.write("abcdefg") 
  注意:python 只能将字符串写入文本文件,如果想把数值数据储存到文本文件,必须先使用函数str( )将其转为字符串格式。
  写入多行
  with open(filename,'w') as file: 
      file.write("abcdefg\n") 
      file.write("hijklmn\n") 
  存储数据python中常使用json来存储数据。json可以将简单的python数据结构转存到文件中,并在程序再次运行时加载该文件中的数据。
  JSON数据格式并非python专用,它是一种常用的数据格式,很有用,也易于学习。
  json.dump( ) 和 json.load( )
  这两个函数分别用于储存数据和加载数据。json.dump() 接受两个实参:要储存的数据和用于储存数据的文件对象。json.load() 用于加载存储在json文件中的信息。
  import json 
  num = [1,2,3,4,5] 
  filename = 'a.json' 
  with open(filename,'w') as f: 
      json.dump(num,f) 
  with open(filename) as f: 
      num = json.load(f) 
  print(num) 
  这是一种在程序之间共享数据的简单方式。
  实现一个小功能
  下面这个程序可以实现我们常常在游戏开头时遇到的一个小功能,一起来试试吧!
  import json 
  # 如果以前储存了用户名就加载它,否则,就提示用户输入名字并存储 
  filename = 'name.json' 
  try: 
      with open(filename) as f: 
          username=json.load(f) 
  except FileNotFoundError: 
      name = input("你叫什么名字?") 
   with open(filename,'w') as f: 
       json.dump(name,f) 
       print("我们会记住你的,"+name+"!") 
  else: 
      print("欢迎回来,"+name+"!") 

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号