Python 操作文件

=====文件对象:打开--->赋值--->关闭=======
1)open及file内建函数
  -作为打开文件之门的"钥匙",内建函数open()以及file()提供了初始化输入/输出(I/O)操作的通用接口
  -成功打开文件的时候会返回一个文件对象,否则引发错误
  -open()方法和file方法可以完全相互替换
-基本语法:

fo = open(file_name,access_mode='r',buffering=-1)
#file_name变量是一个包含了你要访问的文件名称的字符串值。
#access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
#如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
fo = open("foo.txt", "wb")
>>>fo.write("Very good site!
")    #方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
>>>fo.flush()    #希望立刻同步到硬盘,不达到字节大小也强制写入硬盘

2)read()方法
  -read()方法用来直接读取字节到字符串中,最多读取给定数目个字节
  -如果没有给定size参数(默认值为-1)或者size值为负,文件将从开头读取直至末尾
  -读任何文件都行
  -过程:

f = open('/python/for.py')    #打开
data = f.read()    #赋值
f.close()    #关闭
print data    #打印取到的值

-限制读取大小
f.read(20) #每次读最多20个字节,直至读完,一般建议一次读4096,因为硬盘的一个block是4K

3)readline方法
  -读取文件的一行,然后整行,包括行结束符号,作为字符串返回
  -它也有一个可选的size参数,默认为-1,代表读至行的结束符
  -如果提供的参数,那么在超过size个字节后会返回不完整的行
  -它只对文本文件有意义

4)readlines方法
  -readlines()读取所有(剩余的)行然后把它们作为一个字符串列表返回

5)tell()方法文件定位
  tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。
  seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
  如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

>>>position = fo.tell();    # 查找当前位置
>>>print "当前文件位置 : ", position
>>>position = fo.seek(0, 0);    # 把指针再次重新定位到文件开头
>>>str = fo.read(10);
>>>print "重新读取字符串 : ", str

6)rename()方法:

>>>os.rename(current_file_name, new_file_name)    #需要两个参数,当前的文件名和新文件名。

7)remove()方法

>>>os.remove(file_name)    #需要提供要删除的文件名作为参数。

8)mkdir()方法

>>>os.mkdir("newdir")    在当前目录下创建新的目录

9)chdir()方法

>>>os.chdir("/home/newdir")    # 将当前目录改为"/home/newdir"

10)getcwd()方法

>>>os.getcwd()    #显示当前的工作目录。

11)rmdir()方法

>>>os.rmdir( "/tmp/test" )    #删除目录

12)函数
形式参数
-函数定义时,紧跟在函数名后(圆括号内)的参数被称为形式参数,简称形参,由于它不是实际存在变量,所以又称虚拟变量
实际参数
-在主调函数中调用一个函数时,函数后面括号中的参数(可以是一个表达式)称为"实际参数",简称实参
=====传递参数=====
调用函数时,实参的个数需要与形参个数一致

>>>def foo(x,y)
>>> print 'x=%d,y=%d' %(x,y)
>>>foo(3,4)    #调用foo函数
=====位置参数=====
vim argv.py
>>>importsys
>>>print sys.argv    #使用sys模块的argv列表接收
执行./argv.py hh kk
['./argv','hh','kk']    #返回结果
=====默认参数=====
>>>def pstar(num=30)    #函数定义是已经设置了默认参数
>>> print '*' * num
>>>pstar()    #不传入参数则按默认参数输出
>>>pstar(60)    #传入参数,按传入的参数输出
原文地址:https://www.cnblogs.com/linyouyi/p/11409776.html