分析家 发表于 2018-8-3 10:57:32

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():
>>> f=open('f.sh')  
>>> ff=f.read()   #以read()方法取得文件全部内容。
  
>>> print ff
  
#!/bin/bash
  
for i in {a,test,bak};do
  
echo $i
  
done
  
>>>
  readline():
>>> f=open('f.sh')  
>>> file=f.readline()
  
>>> print file
  
#!/bin/bash
  
>>>
  每次打印都会显示出文件内容的第一行,如要显示文件的所有内容,则加一个while循环。如下所示:
>>> while 1:  
...   file = f.readline()
  
...   if file:
  
...             print file
  
...   else:
  
...             break
  
...
  
for i in {a,test,bak};do
  
echo $i
  
done
  
>>>
  这样就显示出文件的所有内容了。
  readlines():
>>> 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这个参数,此参数代表文本文件的一行(包括末尾的换行符)
>>> for eachLine in file:  
...   if eachLine:
  
...             print eachLine
  
...   else:
  
...             print "failed"
  
...
  
#!/bin/bash
  
for i in {a,test,bak};do
  
echo $i
  
done
  
>>>
  也可以这样来读取文件内容:
>>> 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 i in range(len(file)):
  
...   print file
  
...
  
#!/bin/bash
  
for i in {a,test,bak};do
  
echo $i
  
done
  
>>>
  下面来说一下文本文件的输出 write.先看一下例子:
>>> 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()这个函数。以例子说明一下:
>>> 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对文件的处理还有很多特性,需要进一步的学习和运用。。。。^_^
  、
页: [1]
查看完整版本: python学习——python中的文件处理