zoukankan      html  css  js  c++  java
  • 18 python文件、目录操作

      1 1,文件和目录
      2     1.1使用open函数
      3     1.2使用file的类
      4     
      5     文件句柄 = open(文件名,打开模式)   --打开
      6     文件句柄.read   --读取
      7 
      8    例如:
      9     fo=os.open("./123.txt")  --默认以只读模式  ##使用open函数
     10     fo.write("xxxxxxxx")  --  ##说明,不会自动加上换行符  
    
     11     fo.read()
     12     fo.close()
     13 
     14     f1=file("./1.txt")   --默认以只读模式 ##使用file类
     15     f1.read()
     16     f1.write("xxxxxxxx")  --  ##说明,不会自动加上换行符  
    
     17     f1.close()
     18 
     19     模式:
     20     r     ---只读
     21     r+    ---读写
     22     w     ---只写,会清空文件,会创建
     23     w+    ---读写,会清空文件,会创建
     24     a     ---只写,追加,会创建
     25     a+    ---读写,追加,会创建
     26     b     ---二进制,可于以上模式结合使用
     27     U     ---支持所有换行符号
     28 
     29 
     30     fnew=open("./1.txt","w")
     31     fnew.write("xxxxxx")     --写入内容,此时只在缓冲区
     32     fnew.close()             --关闭时,才会真正写入到文件中
     33 
     34     for i in open("./123.txt","r"):     ##每读取一行为列表中的一个元素
     35         print i
     36 
     37 2,文件对象的方法   
     38    一个字符串 = fo.read()        --一次读取所有数据
     39 
     40 
     41    一个字符串 = fo.readline()      --每次读取一行  
     42                 readline() 从文件中读取单独一行,字符串结尾会自动加上一个换行符,只有当文件最后一行没有以换行符结尾时,这一操作才会被忽略。这样返回值就不会有什么混淆不清,
     43                 如果 if f.readline() 返回一个空字符串,那就表示到达了文件末尾,
     44                 如果是一个空行,就会描述为‘
    ’,一个只包含换行符的字符串。
     45    
     46    列表  =  fo.readlines()     --一次读完,每行作为列表的一个元素
     47     
     48 例:
     49 ##读取当前目录下的文件
     50 fileh=open("./123.txt")  ##打开文件
     51 while(1):
     52     txt_line=fileh.readline() ##读取文件
     53     if txt_line =='':      ## 这里必段要加BREAK条件,否则文件读完后一直打印空,函数不退出
     54         break
     55     else:
     56         txt_line=txt_line.rstrip('
    ')
     57         print txt_line
     58         
     59 
     60 
     61 
     62    
     63     fo.next()    --返回当前行,并将文件指针移到下一行
     64                         --类似于readline 当比readline好,在于读完后会有提示,
     65                         --而readline则读完后,则会返回空
     66 
     67     fo.write()  ---单行写入,一次只能写入一个字符串,且不会自动换行
     68     fo.writelines() ---多行写入,
     69     例如:
     70     list=["nihao","ma","henhao"]
     71     fo.writelines(list)  
     72         ----列表中的每个元素,作为一行写入,自动换行写入到文件中
     73 
     74 
     75 
     76 
     77 
     78 
     79 3,seek()函数   --移动指针函数
     80    fo.seek(偏移量,选项)
     81    选项为:
     82    0  从头部开始,向后偏移
     83    1  从当前开始,向后偏移
     84    2  从文件尾开始,向前偏移
     85 
     86    例:
     87    seek(0,0)    移动到头
     88    seek(0,2)    移动到尾
     89    seek(1,0)    在当前位置向后移1 
     90    seek(-1,0)    在当前位置向前移1 
     91 
     92 4,flush()函数    --提交更新函数
     93    FileObject.flush()   ---将缓冲区内容立马写到文件中(因为一般情况是只有close了才会真正写入到文件中)
     94 
     95 
     96 5,文件的查找和替换
     97    
     98 
     99 
    100 
    101 
    102 
    103 ###############目录操作#####################
    104 os 模块
    105 import os
    106 1,目录操作
    107    目录的创建,修改,遍历
    108 
    109    例:
    110    1.1创建目录
    111    os.mkdir('./huang')     ##  创建一个目录
    112    os.makedirs("./huang/hyy/pyton")  ##创建多个目录  (只能是目录)
    113 
    114    注意:
    115    os.makedirs("./huang/hyy/1.txt")  ##则最后一个1.txt也是目录
    116 
    117 
    118    1.2删除目录
    119    os.rmdir("./huang/hyy")       ##只删除了hyy目录
    120    os.removedirs("./huang/hyy")  ##删除了多个目录
    121    注意:
    122       目录非空是删除不了的
    123 
    124    1.3列出目录
    125    ##返回值是一个列表
    126    a=os.listdir("./huang")   ##只能列出当前目录下面的文件和目录,而不能递归到下一层目录下
    127    print (a)
    128 
    129    
    130    a=os.getcwd()  ##查看当前路径(此函数是没有参数的)
    131    print(a)
    132    os.chdir("./huang/hyy")   ##更改工作目录
    133    
    134 2,目录的遍历
    135     listdir()    
    136     os.path.join(字符串1,字符串2)      ##字符串1一般是路径,字符串2一般是文件或目录名
    137                                         ##会自动在两个参数间加""
    138                                         ##返回带路径的字符串
    139     
    140     os.path.isdir(字符串)   ##字符串为带路径的文件名
    141                             ##判断是否为目录,是返回Ture,否则返回False
    142     os.walk(path)
    143                         ##path为带有绝对路径的字符串
    144                         ##返回一个元组,此元组有三个元素
    145                         (绝对路径,[目录列表],[文件列表])
    146 
    147 ##说明:如果是WINDOWS下,则路径字符串需要如下方式:即加要“”
    148     C:\Users\Administrator\Desktop\22
    149 
    150 遍历例子1:
    151     def dirlist (path):
    152     a=os.listdir(path)           ##列出path路径下的所有文件和文件名
    153     for i in a:
    154         i=os.path.join(path,i)   ##拼接成绝对路径
    155         if os.path.isdir(i):      ##遍历文件和目录
    156             print ("#####%s",i)   ##是目录则递归
    157             dirlist(i)
    158         else:
    159             print (i)   ##非目录则打印出来
    160     else:
    161         pass
    162 
    163 path="C:\Users\Administrator\Desktop\huang"
    164 ##path=r"C:UsersAdministratorDesktophuang"       ##前面使用r表示里面的字符保留本意
    165 dirlist(path)
    166   
    167 3,判断本地的文件是否存在
    168 
    169     os.path.exists(带路径文件名)
    170     os.path.exists("./1.txt")
  • 相关阅读:
    PHP运行出现Notice : Use of undefined constant 的解决办法
    Winfrom 设置Panel添加滚动条
    Unable to find the wrapper ”https”
    winfrom 控件的显示隐藏方法
    winfrom 窗体控件实现二级联动
    【最小生成树】Bzoj1601[Usaco2008 Oct]灌水
    【强连通分量】Bzoj1051 HAOI2006 受欢迎的牛
    【Homework】LCA&RMQ
    【建图+最短路】Bzoj1001 狼抓兔子
    【组合数学】Bzoj2916 [Poi1997]Monochromatic Triangles
  • 原文地址:https://www.cnblogs.com/2mei/p/9254204.html
Copyright © 2011-2022 走看看