python查找空格和中文

前言

  图片或者文件夹下,命名不规范,有中文或者有空格。这个脚本批处理查找,并输出到 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() 关闭文件

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

总结

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

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

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

转载请注明出处。

时间: 2024-10-14 22:15:33

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

Python的print输出中文对齐问题

问题描述: 在使用Python的内建函数print作英文输出时,应用格式化输出可以对齐得很好: s1 = 'I am a long sentence.' s2 = 'I\'m short.' print '%-30s%-20s' %(s1,s2) #'%-30s' 含义是 左对齐,且占用30个字符位 print '%-30s%-20s' %(s2,s1) 输出: 注: 这里应用了最原始的cmd控制台,一些IDE自带的控制台(如Sublime text)可能会有不同的输出效果. 但当字符串包含中文

Python 标准库 BaseHTTPServer 中文翻译

Python 标准库 BaseHTTPServer 中文翻译. 注意: BaseHTTPServer模块在Python3中已被合并到http.server,当转换你的资源为 Python3 时 2to3 工具将自己主动适配导入. 源代码:Lib/BaseHTTPServer.py 此模块定义了两个类用于实现HTTP服务器(Web servers).通常,此模块不被直接使用.可是它用来作为基类创建功能性的Web servers. 查看 SimpleHTTPServer 和 CGIHTTPServe

Python 查找Twitter中最流行(转载最多)的10个Tweet

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-4 @author: guaguastd @name: find_popular_retweets.py ''' # Finding the most popular retweets def popular_retweets(statuses): retweets = [ # Store out a tuple of these three values.

[转]Python的经典问题——中文乱码

关键字:Python UTF-8 GBK 中文 乱码估计入门时都会遇到的.我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是正常的.百思不得其解.首先查看了一下源文件的编码格式,是UTF-8.经过搜索再搜索,调试再调试,也换了几个编译器,发现比IDLE还糟糕(可能需要进行encode设置).问题终于解决了,一共花了俺将近5个小时,写在这里,希望遇到问题的人能搜索到这里,不再重犯.乱码原因:因为你的文件声明为utf-8,并且也

用python查找在指定目录下特定文件夹下的指定文件

本代码是在python2.*上边所写. 功能:在指定目录下查找特定文件夹下的特定文件. 实例:查找在packages目录下文件夹名为values下的strings.xml文件 #!/usr/bin/env python import os def walk_dir(path): filter_file_name = 'strings.xml' for root, dirs, files in os.walk(path): for dir_item in dirs: if dir_item ==

Python在当前目录建立中文文件夹

突发奇想,做了个图片爬虫下载器,由于没次都要手动建立图片目录,所以百度了下中文目录建立方法,无奈前几个答案都不是完全正确,所以在这里想整合下. 要在当前建立中文目录,首先当然是要找到当前目录,两行搞定 1 import os 2 cur_path = os.path.abspath(os.curdir) 其实还有几种方式输出当前目录,请大家自行百度,这里不再赘述.剩下的便是建立中文目录,说白了建立中文目录还是编码问题,Python无法直接输出中文字符的,所以想要建立中文目录需要对中文字符串编码为

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

第一 保证 程序源文件中的中文的编码格式,如我们把 源文件的编码设置成utf8的. reload(sys) sys.setdefaultencoding('utf-8') 第二, 告诉浏览器,我们需要用什么格式来展示字符 . web.header('Content-Type', 'text/html; charset=UTF-8') 主要是加这个 HTML格式的头部中说明. 这样基本可以解决,Python生成的网页中文乱码的问题. 版权声明:本文为博主原创文章,未经博主允许不得转载.

python 查找IP地址归属地

#!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 #writer by keery_log #Create time:2013-10-30 #Last update:2013-10-30 #用法: python chk_ip.py www.google.com |python chk_ip.py 8.8.8.8 |python chk_ip.py ip.txt import signal import urllib import j

python中os模块中文帮助

python中os模块中文帮助 python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8,个人博客:http://butlandblog.appspot.com/ 注此模块中关于unix中的函数大部分都被略过,翻译主要针对WINDOWS,翻译速度很快,其中很多不足之处请多多包涵. 这个模块提供了一个轻便的方法使用要依赖操作系统的功能. 如何你只是想读或写文件,请使用open() ,如果你想