这边工作上,要处理些数据,开始有些,根据老大的指示,给excel 加上对应的分隔符,直接复制过去就是字符串数组了。
不过,那边说漏了一些,某些ID根据vip 要加上些东西。这下好,蛋疼了。
去excel 把 要加的ID 整理出来,拿着原来的 列表,要搜索出哪些需要加,然后在后面的字符串加上特定的字符。
想想也简单对不,就是两次遍历,再操作字符串就是了。
Java 虽然也好用,但我还是不熟悉文件操作。都说Python 处理字符是很强的,这种工作就用python试试呗。
好吧,这么个简单的工作,从吃了晚饭后,一直整了一个晚上。下面是使用后的一些总结。
1, python 看起来是很简洁,但半生不熟的话,好多API 还是要现查,这是一个。就比如 正则,是用compile 后的去match, 还是直接 re.search ,这没有自己使用后,还是不知道其中的区别,和适用的场合。 还有各种字符串的操作,和列表的一些处理,也是学了都忘了。
2. 除去API 的不说,排版也是个问题。 都知道python 没有大括号,靠用缩进来指示层次。 我这循环,判断,写了3,4层,后面的逻辑就搞不清要放到哪一层去了。当然这是我个人编码底力不足的因素。不过,调整层次还得目测来确定各个层次的范围,一定程度上确实不如用大括号区分直观。(或许是我该配个更顺手的IDE,而不是用啥都没有的IDLE了)
3.好吧,最大的问题,昨天耗费我时间最多的问题。除了查API 了解字符串,读写文件操作,使用正则以外,更蛋疼的问题。就是文件末尾的换行符。
for line in data:
matcher = pattern.match(line)
if matcher != None:
role = matcher.group(1)
flag = False
for vip in vips:
if vip.strip() == role.strip(): // 注意这里
flag = True
break
上面注释这行,就是问题所在。
总算代码调通了。缩进,层次逻辑也应该改对了,可就是不出来正确的结果,为什么?
newline = line[:len(line)-4]+pitch+line[len(line)-4:]
这行也是,测试的时候,两个字符串放到倒数第3的位置,就对了的。为什么写文件的时候,发现插错了地方?
一切都是因为文件每行末尾的换行符!!!
总结一下,python 掌握常用 字符串 读写 正则的API 后,并且习惯缩进式的使用,还是挺容易处理字符串类的工作的。
只是,下次多注意,换行符,这坑爹的东西啊。。。
本人CSDN博客目录: