前言

  图片或者文件夹下,命名不规范,有中文或者有空格。这个脚本批处理查找,并输出到 txt中方便修改,也可以扩展为

直接脚本删除空格等。目前只用在Windows上,mac没有测试,不知道能不能行,有需要的话,自己修改一下吧。大神勿喷、、、、

代码

python代码如下:

#coding=utf-8
#2015.12.14 windows版本
#查找所有空格名字 或者 空格 # -*- coding: utf-8 -*-
#想要去除的空格的话,可以使用 replace(" ","")
#取得当前路径,所有 直接双击,或者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('gbk')
#print(ff)
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")

讲解

1. os.getcwd()

  获取当前路径。注意,该函数不需要传递参数,它返回当前的目录。需要说明的是,当前目录并不是指脚本所在的目录,而是所运行脚本的目录.

如果你设置了python环境变量,可以直接双击运行。 第二种方法是 cd到当前目录,当然比较麻烦,你按住shift键,右击鼠标,会出现当前位置打开 cmd。如图:

如果你还嫌麻烦。可以修改注册表,直接右键出现 上图

2.中文字符串匹配

import re
zhPattern = re.compile(u'[\u4e00-\u9fa5]+')

3.if i.isspace():

  判断是不是有空格  。也可以使用其他方式。。。。

4.python文件操作

f = open 打开一个文档。。第二个参数是打开方式 。

#open(路径+文件名,读写模式)
#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w     以写方式打开,
a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+     以读写模式打开
w+     以读写模式打开 (参见 w )
a+     以读写模式打开 (参见 a )
rb     以二进制读模式打开
wb     以二进制写模式打开 (参见 w )
ab     以二进制追加模式打开 (参见 a )
rb+    以二进制读写模式打开 (参见 r+ )
wb+    以二进制读写模式打开 (参见 w+ )
ab+    以二进制读写模式打开 (参见 a+ )

注意:

1、使用'W',文件若存在,首先要清空,然后(重新)创建,

2、使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。

f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)

file.readline() 返回一行

file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行

for line in f: print line #通过迭代器访问

f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.

f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).

f.seek(偏移量,[起始位置])

用来移动文件指针

偏移量:单位:比特,可正可负

起始位置:0-文件头,默认值;1-当前位置;2-文件尾

f.close() 关闭文件

读写文件操作文件,可以对比一下其他语言的读写操作。找到共性和区别、

总结

对于文件夹文件的遍历,文件的查找,批量改名等等,都可以使用脚本,高效率,省时间。

需要去做的是:不能只限于实现。还要去优化,对比,哪一种方式更快更高效。

每天进步一点,一年后回头看,你踏出了多少步。

转载请注明出处。

python查找空格和中文的更多相关文章

  1. Python 标准库 BaseHTTPServer 中文翻译

    Python 标准库 BaseHTTPServer 中文翻译. 注意: BaseHTTPServer模块在Python3中已被合并到http.server,当转换你的资源为 Python3 时 2to ...

  2. Python 编码转换与中文处理

    python 中的 unicode是让人很困惑.比较难以理解的问题. 这篇文章 写的比较好,utf-8是 unicode的一种实现方式,unicode.gbk.gb2312是编码字符集. py文件中的 ...

  3. DNS的查找机制、中文扩展,及其对手机扫描商标名称的支持

    DNS的查找机制.中文扩展.及其对手机扫描商标名称的支持 DNS的查找机制 当DNS查找主机时,它首先在本域里查找,假设找不到则交给更上一级的域查找,直至顶级的域. 因此,假设计算机在北大域名(pku ...

  4. Python 生成的页面中文乱码问题

    第一 保证 程序源文件里的中文的编码格式,如我们把 源文件的编码设置成utf8的. reload(sys) sys.setdefaultencoding('utf-8') 第二, 告诉浏览器,我们须要 ...

  5. php 查找字符串里面中文字符第一次出现的位置,并插入字符串

    //查找字符串里面中文字符第一次出现的位置,并插入字符串 function find_first_chinese_insert($str,$insert_str){ $count = mb_strle ...

  6. quartusii开发过程中路径不能出现空格或中文

    quartusii开发过程中路径不能出现空格或中文,否则软件出现.stf文件错误提示,开发环境搭建的时候也不能出现空格和中文,否则也会报错.

  7. python向数据库插入中文乱码问题

    1.python向数据库插入中文乱码问题 直接手动insert into 中文 不乱码,但是用程序跑起来就乱码. conn =MySQLdb.connect(host="127.0.0.1& ...

  8. python中正则表达式在中文字符串匹配时的坑

    之前一直有使用python 正则表达式来做中文字符串或者中英文数字混合的字符串的匹配,发现有不少情况下会匹配失灵或者结果混乱,并且在不同操作系统上匹配结果也不一致,查了很久都不知道是什么原因.今天终于 ...

  9. python中os模块中文帮助

    python中os模块中文帮助   python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8 ...

随机推荐

  1. 关于Hibernate 5 和 Hibernate 4 在创建SessionFactory的不同点分析(解决 org.hibernate.MappingException: Unknown entity: xx类报错问题)

    Hibernate4版本的SessionFactory实例构建的步骤是这样的(也是很多学习资料的通用范本): //Configuration就是代表着hibernate的那个xml配置文件对象,如果c ...

  2. python零碎知识点一

    dir(object),列出对象所有可以用的的方法(参数可以为任意对象,例如class,func等) >>>dir('str') ['__add__', '__class__', ' ...

  3. MySQL 在 LIMIT 条件后注入

    from:https://rateip.com/blog/sql-injections-in-mysql-limit-clause/ 此方法适用于MySQL 5.x中,在limit语句后面的注入例如: ...

  4. C#代码

    http://www.cnblogs.com/zjfree/category/269738.html 超简易静态Web服务器 C# 生成不重复随机字符串 (1秒内生成1000000个) C# 读写IN ...

  5. docker 学习

    vim /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 --r ...

  6. (转载)(收藏)Awk学习详细文档

    awk命令 本文索引 [隐藏] awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术 ...

  7. HDOJ 1004 Let the Balloon Rise

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  8. 把Mongodb配置成windows服务

    在mongodb/bin 下运行命令窗口需要配置日志和db路径,如下:mongod --logpath d:\mongo\logs\logfilename.log --logappend --dbpa ...

  9. html页面定位

    对于css中的position:relative;我始终搞不明白它是什么意思,有什么作用? 对于position的其它几个属性,我都搞懂了 引用 static : 无特殊定位,对象遵循HTML定位规则 ...

  10. HBA相关知识

    HBA使用详解: 一般的AIX客户端支持的HBA为Emulex HBA卡和交换机硬件确保连接成功的标志: A. 如果是 Emulex卡,卡上的绿灯常亮,黄灯闪烁. B. 如果是 QLogic卡,卡上的 ...