python操作文件案例二则

前言

python 对于文件及文件夹的操作。

涉及到 遍历文件夹下所有文件 ,文件的读写和操作 等等。

代码一

作用:查找文件夹下(包括子文件夹)下所有文件的名字,找出 名字中含有中文或者空格的文件 ,并打印到TXT中。

背景:在Android环境下,有些图片或者文件资源 ,如果命名不规范,会引起崩溃,如果有中文的话,直接编译不过去,

所以我们需要找出它们,(可以直接在下面脚本中修改他们的名字)

代码如下:

#coding=utf-8
# win  和 mac
#查找所有空格名字 或者 空格  # -*- coding: utf-8 -*-
#想要去除的空格的话,可以使用 replace(" ","")
#将该文件放到要查找的目录下就可以 RootDir = os.getcwd() 获取的当前路径
#取得当前路径,所有 直接双击,或者cmd 当前目录下再执行python脚本
#检查空格 和中文
import os,sys
import os.path
import re
RootDir = os.getcwd()
zhPattern = re.compile(u‘[\u4e00-\u9fa5]+‘)

def start(rootDir):
    for f in os.listdir(rootDir):
        sourceF = os.path.join(rootDir,f)
        if os.path.isfile(sourceF):
            a, b = os.path.splitext(f) #去除扩展名
            checkName(a)
        if os.path.isdir(sourceF):
            checkName(f)
            start(sourceF)

#文件数组
"""
注意这地方的编码格式。windows文件名字的编码格式为gbk
"""
def checkName(f):
   # ff = f.decode(‘gbk‘).encode(‘utf-8‘)
    ff = f.decode(‘utf-8‘) # mac版
    #ff = f.decode(‘gbk‘)  #windows
    match = zhPattern.search(ff) #匹配中文
    if match:
        print (ff)
        Chinese.append(f)
    for i in f:
           if i.isspace(): #检查空格
               print f
               name.append(f)

#输出到txt
def wirte():
    f = open(RootDir+"/checkReslut.txt", "w+")
    f.write("space :\n")

    for i in range(0, len(name)):
        f.write(name[i] + "\n")

    f.write("\nChinese :\n")
    for i in range(0, len(Chinese)):
        f.write(Chinese[i] + "\n")  

    f.close()

if __name__=="__main__":
    name = []
    Chinese = []
    start(RootDir)
    wirte()
    #os.system("pause") # windows版本

代码二

作用:在文件中查找字符串 或者替换

背景:UI工程,图片资源重复,同样的,可能起了不同的名字,或者在不同模块都使用了,我们需要把他们放到一个公共的地方,可以找出来,修改。

#coding=utf-8
#在文件中查找字符串
#可以直接替换
#mac 版
#SearchNameArry 想要查找的文件 数组
# 1.手动写
# 2.对于想要查找的文件,可以放到一个文件夹下,然后程序直接读取文件名字

#扩展
#1.可以将结果写到TXT中
#2.直接替换

import string
import os
import struct
import re
import fileinput
import fnmatch  

RootDir = os.getcwd()
TargetType = ‘*.csd‘  #要查找的文件类型 ‘.‘(所有文件) ‘*.txt‘(所有的txt) 等等
SearchNameArry = {‘ggsc_b_004_1.png‘,‘ggsc_b_004_2.png‘,‘ggsc_b_004_3.png‘} 

def walkDir(directory, ext=‘*.*‘, topdown=True):
    fileArray = []
    for root, dirs, files in os.walk(directory, topdown):
        for name in files:
            #print name
            if fnmatch.fnmatch(name, ext):
                fileArray.append(os.path.abspath(os.path.join(root, name)))
    return fileArray  

#查找
def searchStr(filename, strFrom):
    for line in fileinput.input(filename, inplace=False): # inplace 是不是替换(自己查查fileinput.input的作用)
        isFind = False
        if re.search(strFrom, line):
            print line
            isFind = True

        if isFind == True:
           print os.path.basename(filename)
           #print filename     #print os.path.basename(filename)

#替换 未测试
def replaceInFile(filename, strFrom, strTo):
    for line in fileinput.input(filename, inplace=False):
        if re.search(strFrom, line):
            line = line.replace(strFrom, strTo)
        print line  

def main():
     for filename in walkDir(RootDir, TargetType):
        for img in SearchNameArry:
            searchStr(filename, img) 

if __name__ == ‘__main__‘:
    main()
    

有不对的地方,请大神指正。交流加QQ776274781.

转载注明出处。

时间: 2024-10-10 15:31:24

python操作文件案例二则的相关文章

Python 操作文件模拟SQL语句功能

Python操作文件模拟SQL语句功能 一.需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from staff_table where dept = "IT" 3. select * from

Python操作文件、文件夹、字符串

Python 字符串操作 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr2 连接字符串 #strcat(sStr1,sStr2) sStr1 = 'strcat' sStr2 = 'append' sStr1 += sStr2 print sStr1 查找字符 #strchr(sStr1,sS

python操作文件和目录

python操作文件和目录 目录操作 # 查看当前目录 >>> os.path.abspath('.') '/Users/markzhang/Documents/python/security' # 查看当前目录 >>> os.getcwd() '/Users/markzhang/Documents/python/security' # 更改当前的工作目录 >>> os.chdir('/Users/markzhang/') >>> o

python, 操作文件和目录

操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数 基本功能 import os #操作系统类型 os.name #posix:Linux.Unix或Mac OS X,nt:Windows系统 #要获取详细的系统信息,Windows上不提供 os.uname() #环境变量查看 os.environ #要获取某个环境变量的值,可以调用os.environ.get('key') os.environ.get('PATH') os

用python操作文件和文件夹

我有一堆层级3到4级的文件夹,这里面存有的一些文件是我需要的,一些是我不需要的.需要的文件都存储在名字中有'Data'的文件夹内.现在我需要把这些文件提取(拷贝)到一个指定的文件夹里. 一个文件夹一个文件夹去点开是一种方法,但是对于层级比较深的文件夹是一件很枯燥的事情. 本着一切尽量自动化的原则,我用python来做这件事情. 这个需求归纳下来需要: 从一个起始目录开始 遍历每一个文件夹 如果文件夹的名字中有'Data',拷贝它的内容至目标文件夹 python对文件.文件夹的操作是非常常见的需求

python操作文件入库

这是我写的一个pyhon操作文件入进数据库的程序,由于功底还不扎实!所以写得很粗糙! 下面代码是一个公共的输出类,所有的输出语句通过下面程序来展示: 1 #!/user/bin/env python 2 #coding:utf-8 3 4 5 try: 6 import time 7 except Exception, e: 8 raise e 9 10 11 def msgOutput( content, codeZT, codeType = "UTF-8" ): 12 if cod

Python操作文件夹

python对文件夹的操作汇总,方便查阅使用 1.遍历指定目录,显示目录下的所有文件名 #-*- coding:utf-8 -*- import os def fileInFolder(filepath): pathDir = os.listdir(filepath) # 获取filepath文件夹下的所有的文件 files = [] for allDir in pathDir: child = os.path.join('%s\\%s' % (filepath, allDir)) files.

python操作文件与目录

title: OS文件及目录方法 tags: python os文件 os目录 grammar_cjkRuby: true --- os.access( ) 方法 os.access(path,mode) 方法用来检测文件或目录的权限,有两个参数: path: 文件或者目录的路径 mode: 需要检测的权限,其中 mode 的取值有: os.F_OK: mode的参数,检测path是否存在.==在bash中使用[ -f path_to_file ]来检测== os.R_OK: mode的参数,

Python操作文件文档

需要帮老师将44G的图书分类一下,人工当然累死了.所以用Python大法处理一下. 思路是读取文件目录下的书名,然后去百度百科查分类,如果还没有就去豆瓣,当当查.哪一个先找到其余的就不用找了.如果没有找到先不进行一下处理 ,当找到分类以后就开始将文件加入制定文件夹下的分类(如果没有分类文件夹则自动创建).当所有可以通过网络分类的书进行分类之后,剩余的书就通过划分关键字进行下一次的分类.目前先附上需要查询的资料.等44G在服务器上解压完毕,处理成功之后上代码. os.listdir(os.getc