python学习——python中的文件处理

简介:

python对文件的处理。

python对文件的处理的两个内建函数:

open()、file(),这个两函数提供了初始化输入\输出(I\O)操作的通用接口。两函数的功能相同。

基本用法:

file_object=open(filename, access_mode='r', buffering=-1)

file_object 是定义一个打开文件的对象

access_mode 是打开文件的模式;通常,文件使用模式 'r','w','a' 来打开,分别代表,读取,写入,追加。

'r' 模式打开已经存在的文件

'w' 模式打开的文件若存在则首先清空,再加入内容。

'a' 这个模式是追加内容到文件中

注. 'b' 模式这个是打开二进制文件,对于unix-like/unix类型的系统'b'模式是可有可无的。

buffering 访问文件所采用的缓冲方式。其中0表示不缓冲,1表示只缓冲一行数据,任何其它大于1的值代表使用给定的值作为缓冲区大小。不给定此参数或者参数为负数都表示使用系统默认的缓冲机制。


常用的文件访问方式如下:

r        以读方式打开

rU或Ua   以读方式打开同时提供通用换行符支持

w        以写方式打开

a        以追加方式打开

r+       以读写方式打开

w+       以读写方式打开

a+       以读写方式打开


文件的输入:

python中有三个方法来处理文件内容的输入:

read() 一次读取全部的文件内容。

readline() 每次读取文件的一行。

readlines() 读取文件的所有行,返回一个字符串列表。


分别举例说明一下:

read():

1
2
3
4
5
6
7
8
>>> f = open ( 'f.sh' )
>>> ff = f.read()    #以read()方法取得文件全部内容。
>>>  print  ff
#!/bin/bash
for  in  {a,test,bak};do
     echo $i
done
>>>


readline():

1
2
3
4
5
>>> f = open ( 'f.sh' )
>>>  file = f.readline()
>>>  print  file
#!/bin/bash
>>>

每次打印都会显示出文件内容的第一行,如要显示文件的所有内容,则加一个while循环。如下所示:

1
2
3
4
5
6
7
8
9
10
11
>>>  while  1 :
...      file  =  f.readline()
...      if  file :
...              print  file
...      else :
...              break
...
for  in  {a,test,bak};do
     echo $i
done
>>>

这样就显示出文件的所有内容了。

readlines():

1
2
3
4
>>> f = open ( 'f.sh' )
>>>  file = f.readlines()
>>>  print  file
[ '#!/bin/bash \n' 'for i in {a,test,bak};do\n' '\techo $i\n' 'done\n' ]   #文件内容以字符串列表的形式显示出来。

如果要正常的显示出文件来可以用eachLine这个参数,此参数代表文本文件的一行(包括末尾的换行符)

1
2
3
4
5
6
7
8
9
10
11
>>>  for  eachLine  in  file :
...      if  eachLine:
...              print  eachLine
...      else :
...              print  "failed"
...
#!/bin/bash
for  in  {a,test,bak};do
     echo $i
done
>>>

也可以这样来读取文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
>>> f = open ( 'f.sh' )
>>>  file  =  f.readlines()
>>>  print  file
[ '#!/bin/bash \n' 'for i in {a,test,bak};do\n' '\techo $i\n' 'done\n' ]
>>>  for  in  range ( len ( file )):
...      print  file [i]
...
#!/bin/bash
for  in  {a,test,bak};do
     echo $i
done
>>>

下面来说一下文本文件的输出 write.先看一下例子:

1
2
3
4
5
6
7
8
9
10
>>> f = open ( 'a' 'w' )
>>> s  =  'This is a new line.'
>>> f.write(s)
>>> f.close()
来读取一下这个刚创建的文件
>>> f = open ( 'a' )
>>>  file = f.read()
>>>  print  file
This  is  a new line.
>>>

再来说一下python中在文本文件内容移动的操作,主要是用到seek()这个函数。以例子说明一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> f  =  open ( 'a' 'w+' )       #'w+' 表示,文件以可读可写模式打开。
>>> f.tell()                 #用tell()方法来记录打开文件的位置。初始的位置0
0
>>> f.write( 'test line 1\n' #向文件中写入新的一行。
>>> f.tell()
12                            #显示出移动的位置。
>>> f.write( 'test line 2\n' #再向文件中加入新的一行。
>>> f.tell()
24                            #显示出移动的位置。
>>> f.seek( - 12 , 1 )             #向后移动12个字节的位置。应该移动到文件内容的第二行的开头
>>> f.tell()
12
>>> f.readline()              #用readline()方法读取当前位置时的文件内容。
'test line 2\n'               #显示的是文件的第二行,可见readline()方法读取的是当前位置以后的内容。
>>> f.seek( 0 , 0 )               #回到文件的开始位置
>>> f.readline() 
'test line 1\n'               # 显示文件的第一行。
>>> f.tell()
12                            #此时位置在第二行的开始处。
>>> f.readline()
'test line 2\n'
>>> f.tell()
24                            #此时又到了文件第三行的开始处了。
>>> f.close()


这里只是记录了python处理文本文件的简单运行方法,python对文件的处理还有很多特性,需要进一步的学习和运用。。。。^_^




本文转自 ZhouLS 51CTO博客,原文链接:http://blog.51cto.com/zhou123/1281393


相关文章
|
1月前
|
机器学习/深度学习 前端开发 算法
学习Python需要多久?
【7月更文挑战第6天】学习Python需要多久?
39 5
|
13天前
|
机器学习/深度学习 开发者 Python
Python 与 R 在机器学习入门中的学习曲线差异
【8月更文第6天】在机器学习领域,Python 和 R 是两种非常流行的编程语言。Python 以其简洁的语法和广泛的社区支持著称,而 R 则以其强大的统计功能和数据分析能力受到青睐。本文将探讨这两种语言在机器学习入门阶段的学习曲线差异,并通过构建一个简单的线性回归模型来比较它们的体验。
37 7
|
11天前
|
JSON API 开发者
Python学习Get方式通过商品 ID请求 获取拼多多商品详情数据接口
拼多多商品详情数据接口服务使开发者或商家能编程获取平台商品详情,涵盖标题、价格、销量等关键信息,助力市场分析与决策。使用前需注册开发者账号并获取API密钥;构造含商品ID等参数的请求URL后发送至API服务器;接口以JSON格式返回数据。应用场景包括商品销售分析、选品、品牌口碑挖掘及竞品分析,为商家提供强大数据支持。
|
10天前
|
算法 数据挖掘 大数据
深入学习Python的性能优化
【8月更文挑战第9天】深入学习Python性能优化涵盖设定明确目标、运用timeit与cProfile等工具诊断瓶颈、优化代码结构与算法、采用并行/并发技术、利用生成器与第三方库等策略。这是一个持续学习的过程,旨在全面提升代码效率与响应速度。
18 1
|
12天前
|
数据采集 人工智能 数据可视化
【2023年电工杯竞赛】B题 人工智能对大学生学习影响的评价 数学建模方案和python代码
本文介绍了2023年电工杯竞赛B题的数学建模方案和Python代码实现,详细阐述了如何分析调查问卷数据,建立评价指标体系,构建数学模型评估人工智能对大学生学习的影响,并提供了数据预处理、特征编码、可视化分析等代码示例。
21 0
【2023年电工杯竞赛】B题 人工智能对大学生学习影响的评价 数学建模方案和python代码
|
20天前
|
机器学习/深度学习 搜索推荐 TensorFlow
使用Python实现深度学习模型:智能教育与个性化学习
【7月更文挑战第29天】 使用Python实现深度学习模型:智能教育与个性化学习
89 9
|
16天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络不再是黑魔法!Python带你一步步拆解,让AI学习看得见
【8月更文挑战第3天】神经网络,曾被视为难以触及的黑魔法,现已在Python的助力下变得平易近人。以TensorFlow或PyTorch为“魔法杖”,仅需几行Python代码即可构建强大的AI模型。从零开始,我们将教导AI识别手写数字,利用经典的MNIST数据集。通过数据加载、预处理至模型训练与评估,每个步骤都如精心编排的舞蹈般清晰可见。随着训练深入,AI逐渐学会辨认每个数字,其学习过程直观展现。这不仅揭示了神经网络的奥秘,更证明了任何人都能借助Python创造AI奇迹,共同探索未来的无限可能。
23 2
|
21天前
|
Ubuntu IDE Linux
Python学习安装 Python
【7月更文挑战第26天】
25 3
|
21天前
|
IDE 数据可视化 安全
Python学习中设置开发环境
【7月更文挑战第26天】
18 2
|
1月前
|
供应链 数据挖掘 Python
后劲真大,我愿称之为学习python的“圣经”
很多小伙伴都在学习Python,但是爱看书的找不到适合自己的,这本书可以完美的解决你的问题,还能帮助到很多需要处理数据,做Excel自动方面的。 学习数据分析的好处众多,无论是对于个人职业发展还是企业的运营决策都具有重要意义。