python_文件遍历、文件读取、文件操作

一、文件遍历

import os


   fileDir="D:" + os.sep + "data2"

   for root, dirs, files in os.walk(fileDir):

       for dir in dirs:

           print(os.path.join(root,dir))

       for file in files:

           print(os.path.join(root,file))  #文件路径

            name,suffix = os.path.splitext(file)  #文件名、后缀名


注:    for root, dirs, files in os.walk(fileDir): 

                    print(root) #当前目录路径  

                    print(dirs) #当前路径下所有子目录  

                    print(files) #当前路径下所有非目录子文件  



二、文件按行读取,并读取每行的每个元素

import os


(注:如果是读取遍历的文件:f = open(os.path.join(root,file),"r")


controlFile=open("D:\\DEM2\\control.txt","r")  #调用python的open()函数打开要读取的文件
lstcon=controlFile.readlines() #读取文件中的内容并写入到列表
for point in lstcon: #添加一个for 循环语句来迭代遍历lstFires变量中的所有行
     lstvalue=point.split(",") #调用split()函数并使用逗号作为分隔符,将分离后的值保存到列表中,然后赋值给变量lstValues
     ID=int(lstvalue[0])  #使用索引值来获取
     x=float(lstvalue[1])
     y=float(lstvalue[2])

     z=float(lstvalue[3])

controlFile.close()


三、文件删除

os.remove(path)


四、计算文件大小

                size=os.path.getsize(os.path.join(root,file))

                size1=(size+1024)/1024.0/1024.0  #size单位为比特,化为M


五、中文输出

import sys


print"序号","数据项名称","数据内容"
print"序号,数据项名称,数据内容"
type = sys.getfilesystemencoding() #python编码转换到系统编码输出
print type


六、进行行筛选

#筛选地理基准影像上的匹配点数,每张像片取100个

p2_fr=open("E:\\test\\sift\\dom\\tfw\\2DSC00261XYZ.txt","r")

p2_fw=open("E:\\test\\sift\\dom\\tfw\\2DSC00261XYZ1.txt","w")

p2_num=len(open("E:\\test\\sift\\dom\\tfw\\2DSC00261XYZ.txt").readlines())

p2_num_hang=p2_num/100

for frp2 inp2_fr.readlines()[0:p2_num:p2_num_hang]:#输出文件中间隔一定数量的行#开始,结尾,间隔

    p2_fw.write(str(frp2))

p2_fw.close()

p2_fr.close()

七、对文件进行切片

import re;

p=re.compile('\n\n',re.S);

fileContent=open('files/办公室.txt','r',encoding='utf8').read();#读文件内容

paraList=p.split(fileContent)#根据换行符对文本进行切片

 

fileWriter=open('files/0.txt','a',encoding='utf8');#创建一个写文件的句柄

for paraIndexin range(len(paraList)):#遍历切片后的文本列表

    fileWriter.write(paraList[paraIndex]);#先将列表中第一个元素写入文件中

    if((paraIndex+1)%3==0):#判断是否写够3个切片,如果已经够了

        fileWriter.close(); #关闭当前句柄

       fileWriter=open('files/'+str((paraIndex+1)/3)+'.txt','a',encoding='utf8');#重新创建一个新的句柄,等待写入下一个切片元素。注意这里文件名的处理技巧。

fileWriter.close();#关闭最后创建的那个写文件句柄

print('finished');  


八、获得上一级目录

1.  parent_path = os.path.dirname(d) #获得d所在的目录,d的父级目录  

2.  parent_path  = os.path.dirname(parent_path) ##获得parent_path所在的目录即parent_path的父级目录



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值