前言

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.

转载注明出处。

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

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

    Python 字符串操作 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sSt ...

  2. Python操作文件和目录

    Python操作文件和目录 读写文件比较简单,有一点特别注意就好了 windows下Python默认打开的文件以gbk解码,而一般我们的文件是utf-8编码的,所以如果文本含有中文,就会出现异常或者乱 ...

  3. python操作文件练习,配置haproxy

    在使用python操作文件的时候,特别是对于网络设备,通常操作配置文件,会简化配置量,配置文件加载到内存中,运行时使用的是内存中的配置,内存中配置修改后立即生效,如果不将配置内容保存到硬盘中,则下次重 ...

  4. Python操作文件-20181121

    Python操作文件 Python操作文件和其他语言一样,操作的过程无非是先定位找到文件.打开文件,然后对文件进行操作,操作完成后关闭文件即可. 文件操作方式:对文件进行操作,主要就是读.写的方式,p ...

  5. 使用python操作文件实现购物车程序

    使用python操作文件实现购物车程序 题目要求如下: 实现思路 始终维护一张字典,该字典里保存有用户账号密码,购物车记录等信息.在程序开始的时候读进来,程序结束的时候写回文件里去.在登录注册的部分, ...

  6. 用Python操作文件

    用Python操作文件 用word操作一个文件的流程如下: 1.找到文件,双击打开. 2.读或修改. 3.保存&关闭. 用Python操作文件也差不多: f=open(filename) # ...

  7. Python操作MySQL案例

    最近都在学习Python代码,希望学会Python后,能给我带来更高的工作效率,所以每天坚持学习和拷代码,下面是一个Python操作MySQL的一个实例,该实例可以让更多的人更好了解MySQLdb模块 ...

  8. open -python操作文件

    一打开文件 二操作文件 三关闭文件 open(文件,模式,编码),打开文件----->0101010(以二进制的方式打开)------>编码(open默认utf-8编码)------> ...

  9. Python操作文件文档

    需要帮老师将44G的图书分类一下,人工当然累死了.所以用Python大法处理一下. 思路是读取文件目录下的书名,然后去百度百科查分类,如果还没有就去豆瓣,当当查.哪一个先找到其余的就不用找了.如果没有 ...

随机推荐

  1. gcc编译命令行依赖库的指定顺序

    gcc链接过程中定义了三个集合:可重定位目标文件集合E.未解析符号集合U和已定义符号集合D,链接基本流程如下: 1) 按命令行指定顺序依次处理每个目标文件和库文件: 2) 如果为目标文件,将其加入集合 ...

  2. android studio 2.0 GPU Debugger使用说明

    GPU Debugger GPU Debugging Tools The GPU debugging tools are an experimental feature intended to hel ...

  3. Java线程:线程的同步-同步方法

    Java线程:线程的同步-同步方法   线程的同步是保证多线程安全访问竞争资源的一种手段. 线程的同步是Java多线程编程的难点,往往开发者搞不清楚什么是竞争资源.什么时候需要考虑同步,怎么同步等等问 ...

  4. idea 光标变成粗体且当前文件搜索功能无法使用的问题

    今天安装了idea最新版,安装完成后发现光标变成了粗体,并且快捷键在使用时出现了问题,比如:ctrl+F搜索功能无法使用 经过反复修改配置也无法改善情况,后来一次重启看到下面小窗弹出有关vim的一个提 ...

  5. 微信小程序开发POST请求

    onLoad: function() { that = this; wx.request( { url: "http://op.juhe.cn/onebox/weather/query&qu ...

  6. 【转载】如何破解受保护的excel密码

    [工具] 1.电脑一台(安装有Microsoft Excel) 2.受保护excel一个 [步骤] 1.首先,打开受保护的Excel表格,按"ALT"+"F11" ...

  7. 在.net中调用Delphi dll的Pchar转换

    Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型.如果Delphi dll是De ...

  8. understanding-论文

    understanding temporal and spatial travel paterns of individual passengers by mining smart card data ...

  9. Fatal error: Call to undefined function curl_init()问题

    最近分别在win7和Win8.win10 上分别安装php 高版本!都遇到了这个问题! 一.win7系统, apache2.2/apache2.4, php5.2升级到5.4. 这个比较容易: 1. ...

  10. powershell

    function 怎么执行: http://www.cnblogs.com/bradwarden/p/3370260.html PowerShell script can be used in: 1. ...