文件与目录的操作:

        -文件读写python进行文件读写的函数是open或file

                                file_handler =

                                open(filename,mode)

mode,

模式说明
r只读
r+读写
w写入,先删除原文件,在重新写入,如果文件没有则 创建
w+读写,先删除原文件,在重新写入,如果文件没有则创建(可以写入输出)

                读范例:

>>> fo  = open('/tools/123/test.log')                                    #open函数打开文件
>>> fo
<open file '/tools/123/test.log', mode 'r' at 0x7fdc0c144d20>            #fo对象打开的文件,模式是read
>>> fo.read()
'a\n'                                                                    #查看文件中的数据
>>> fo,close()                                                           #关闭文件
>>> fo.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file                                #再次读取文件,是关闭状态
#################################利用file类打开文件##################################
>>> f1 = file('/tools/123/test.log')
>>> f1.read()
'a\n'
>>> f1.close()
>>> f1.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file
#方法同上

                写范例:

>>> fnew = open('/tools/123/new.test','w')    #打开新的文件,注意w的引号,以值得形式传入
#此处文件new.test已经存在
>>>fo.write('hello \n My name is kong')       #写入数据,注意是在缓冲中,\n 换行
>>> fo.close()                                #关闭,即可保存数据
>>> fnew=open('/tools/123/new.log','w')       #注意w的特性,当它打开文件时,会清空原数据;
>>> fnew.write('I am NEW')                    #再次写入数据
>>> fnew.close()

             使用r+打开文件:(查看后写入数据)

>>> fnew=open('/tools/123/new.log','r+')
>>> fnew.read()                                #文件可读
'I am NEW'  
>>> fnew.write('new contents')
>>> fnew.close()                              #查看文件保留原有数据,且写入新的数据

                                         (直接写入数据)

>>> fnew=open('/tools/123/new.log','r+')
>>> fnew.write('000 nihao')
>>> fnew.close()                              #查看文件内容

#文件中的数据,当我们去查看的时候,它会从第一个字母打印到最后一个字母,其实它有一个隐形的指针,从第一个字符开始读取的时候 

   此处未学习完毕~~~  注意




OS模块

        import os

        -目录操作需要调用os模块

         -比如

>>> import os 
>>> os.mkdir('/tools/csvt') 
>>> os.mkdir('test')

多级目录创建makedirs()

>>> os.makedirs('a/b/c')

删除目录rmdir() 、removedirs()

>>> os.rmdir('test')
>>> os.rmdir('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 39] Directory not empty: 'a'
#提示目录不为空
>>> os.removedirs('a/b/c')
#注意多级目录的删除要写明目录列表

显示当前路径getcwd()

>>> os.getcwd()
'/tools/123'

显示目录列表listdir()

>>> os.listdir('.')
['test.log', 'new.log', 'new.test']
#.当前路径,但是不包含子目录
>>> os.listdir('/tools/123/')
['test.log', 'new.log', 'new.test']

切换目录操作chdir:

>>> os.chdir('/usr/local/')
>>> os.getcwd()
'/usr/local'
#注意此切换仅仅是在python 环境中








文件对象操作:

        -FileObject.close()

        -String = FileObject.readline([size])

        -List = FileObject.readlines([size])

        -String = FileObject.read([size])

        -FileObject.next()

        -FileObject.write(string)

        -FileObject.writelines(list)

        -FileObject.seek(偏移量,选项)

        -FileObject.flush()


范例:

>>> for i in open('test.log'):
...      print i
... 
www.csvt.com
 i am milo
hello

        #遍历test.log,依次打印每行,返回迭代变量

readline:

    -格式

        String=FileObject.readline(【size】)


    -说明:

        每次读取文件的一行

        size:是指每行每次读取size个字节,知道行的末尾

范例:

>>> f1 = open('test.log')
>>> f1.readline()
'www.csvt.com\n'
>>> f1.readline()
' i am milo\n'
>>> f1.readline()
'hello\n'
>>> f1.readline()
''

        #每次读取一行,直到指正完毕

readlines

>>> f1.close()
>>> f1 = open('test.log')
>>> f1.readlines()['www.csvt.com\n', ' i am milo\n', 'hello\n']

        #把每行的数据作为列表当中的元素进行返回


next:

    -格式:

      FileObject.next()

    -说明:

       .返回当前行,并将文件指针到下一行

范例:

>>> f1.close()
>>> f1=open('test.log')
>>> f1.next()
'www.csvt.com\n'
>>> f1.next()
' i am milo\n'
>>> f1.next()
'hello\n'
>>> f1.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

        #效果和readline类似,注意使用readline,超出范围之后会读取空字符串,而next,超出范围之后,会停止迭代

write

        -格式:

             .FileObject.write(string)

          -说明:

            .write和后面的writelines在写入前会是否清除文件中原来所有的数据,在重新写入新的内容,取决于打开文件的模式

范例:



writelines:

        -格式:

             .FileObject.writelines(List)

          -说明:

            .多行写

                .效率比write高,速度更快,少量写入可以使用write

范例:

>>> l = ['one\n','two\n','three\n']
>>> f1 = open('test.log','a')
>>> f1.writelines(l)
>>> f1.close()


FileObject.seek(偏移量,选项)

         -选项=o时,表示将文件指针指向从文件头部到”偏移量“字节处。

         -选项=1时,表示将文件指针指向从文件的当前位置,向后移动”偏移量“字节。

         -选项=2时,表示将文件指针指向从文件尾部,指向移动”偏移量“字节。


  需要重新学习