700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python找到字符中空格所在的位置_python查找空格和中文

python找到字符中空格所在的位置_python查找空格和中文

时间:2021-11-02 21:34:49

相关推荐

python找到字符中空格所在的位置_python查找空格和中文

前言

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

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

代码

python代码如下:

#coding=utf-8#.12.14 windows版本#查找所有空格名字 或者 空格 # -*- coding: utf-8 -*-#想要去除的空格的话,可以使用 replace(" ","")#取得当前路径,所有 直接双击,或者cmd 当前目录下再执行python脚本#检查空格 和中文

importos,sysimportos.pathimportre

RootDir=os.getcwd()

zhPattern= pile(u'[\u4e00-\u9fa5]+')defstart(rootDir):for f inos.listdir(rootDir):

sourceF=os.path.join(rootDir,f)ifos.path.isfile(sourceF):

a, b= os.path.splitext(f) #去除扩展名

checkName(a)ifos.path.isdir(sourceF):

checkName(f)

start(sourceF)#文件数组

"""注意这地方的编码格式。windows文件名字的编码格式为gbk"""

defcheckName(f):#ff = f.decode('gbk').encode('utf-8')

ff = f.decode('gbk')#print(ff)

match = zhPattern.search(ff) #匹配中文

ifmatch:print(ff)

Chinese.append(f)for i inf:if i.isspace(): #检查空格

printf

name.append(f)#输出到txt

defwirte():

f= open(RootDir+"/checkReslut.txt", "w+")

f.write("space :\n")for i inrange(0, len(name)):

f.write(name[i]+ "\n")

f.write("\nChinese :\n")for i inrange(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.中文字符串匹配

importrezhPattern = pile(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() 关闭文件

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

总结

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

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

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

转载请注明出处。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。