码迷,mamicode.com
首页 > 编程语言 > 详细

python文件处理

时间:2017-10-28 01:04:40      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:写入内容   nes   etl   序列   保存   模式   指针   修改   文件   

打开文件,当前目录
 
help(file)
 
方法
.close()                        关闭文件。关闭后文件不能再进行读写操作。
.flush()                        刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
.fileno()                        返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
.isatty()                        如果文件连接到一个终端设备返回 True,否则返回 False。
.next()                          返回文件下一行
.read([size])                 从文件读取指定的字节数,如果未给定或为负则读取所有
.readline([size])            读取整行,包括 "\n" 字符。
.readlines([sizehint])        读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。  
.seek(offset[, whence])        设置文件当前位置
.tell()                              返回文件当前位置
.truncate([size])             截取文件,截取的字节通过size指定,默认为当前文件位置。
.write(str)                       将字符串写入文件,没有返回值。
.writelines(sequence)    向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
 
数据类型描述
file.closed                         返回true如果文件已被关闭,否则返回false。
file.encoding                    文件编码
file.errors
file.mode                        返回被打开文件的访问模式。
file.name                        返回文件的名称。
file.newlines                   
file.softspace                如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
 
 
文件写入
file(‘test.txt‘,‘w‘)
r     只读模式,文件存在时才行,默认模式
rb   以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式
r+   打开一个文件用于读写。文件指针将会放在文件的开头
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
w    写入,新创建test.txt文件, 有文件时会覆盖文件,  
a    追加
+     读和写
>>> file(test.txt,w)
<open file test.txt, mode w at 0x0000000002E24150>      ##文件存在内存中
>>> f = file(test.txt,w)
>>> f.write("first test")   ##写入内容
>>> f.write("aaa") 
>>>f.flush()                   ##刷新写入,保存在硬盘
>>>f.close()                  ##文件退出,保存在硬盘
退出后无法f.write(),
如果再 以 w 模式打开
f = file(test.txt,w)
f.write("add test2")
f.close()               原文件内容会被覆盖,
所以追加内容用模式 
f = file(test.txt,a)
将列表写入
f = open("test.txt", "wb")
f.writelines([first test\n, 123\n, aaa])        
f.close()
 
打开文件,与文件属性
open 
 
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
f = open("f.txt", "wb")
print "文件名: ", f.name
print "是否已关闭 : ", f.closed
print "访问模式 : ", f.mode
print "末尾是否强制加空格 : ", f.softspace
 
condecs 避免格式问题打开文件乱码(推荐)
>>> import codecs
>>> f = codecs.open(test.txt,a,utf-8)
>>> f.write(test)
>>> f.close()
读文件
f.readline()   读行
>>>f = file(test.txt)    ###不带模式,默认是 r  只读模式
>>>f.read()  读所有内容,打印所有内容
 
f.read()  之后 执行  f.readline()  会显示空值,因为f.read() 后指针默认是在跳到内容最末尾,
>>>f.tell()             ##可以查看指针位置,
>>>f.seek(0)        ##指针跳到0个字符,即行首,指定跳到那个位置
>>>f.readline()     ###读出所有内容,打印第一行,再执行打印第二行
>>>f.seek(0)
>>>f.readlines()    ##读取所有行并返回列表
>>>[first test\n, 123\n, aaa]
f.xreadlines()     ##对于很大的文件时使用,读单行,速度快占内存小
 
with ...as  语法使用,enumerate() 使用
import codecs
with codecs open(test.txt,rb) as f:
    print (f.read())
    for line, value in enumerate(f):        ##每行都打印行号
        print(line, value)
        if line == 4-1:                 ##打印行号
            print (value)
with ...as避免忘记f.close(),又可以避免文件乱码
 
linecache 取某行内容
import linecache
conut = linecache.getline(test.txt,4)
print(count)

 

文件内容替换
for line in fileinput.input("filepath",inplace=1):
     line = line.replace("oldtext","newtext")
     print line,      ###不写,文件可能被清空
 
inplace=0  默认=0   只打印修改,=1 修改文件  
backup= ‘ .bak‘      修改前备份源文件,添加.bak后缀
 

python文件处理

标签:写入内容   nes   etl   序列   保存   模式   指针   修改   文件   

原文地址:http://www.cnblogs.com/song-liang/p/7745767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!