[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 【已解决】Python怎样在文本特定行前添加数字?

源文件:
a.
xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
b.
xxxxxxxxx
xxxxxxxxx
c.
xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
目标文件:
a.
1.xxxxxxxxx
2.xxxxxxxxx
3.xxxxxxxxx
b.
1.xxxxxxxxx
2.xxxxxxxxx
c.
1.xxxxxxxxx
2.xxxxxxxxx
3.xxxxxxxxx
4.xxxxxxxxx
啥都不懂,啥都不会!学的还慢!

回复 29# 949825667@qq.co
其实你可以直接正则搜索词性缩写pron. adj. num. adv. v. art. prep. conj. int. vt. vi.,并且只用一个变量n,不需要num
  1. #Date:2016/8/31
  2. import re
  3. f=open('be.txt','r');n=-2
  4. for x in f.readlines():
  5. x=x.strip()
  6. if re.search(r'(^n\.)|(^pron\.)|(^adj\.)|(^adv\.)|(^num\.)|(^art\.)|(^prep\.)|(^conj\.)|(^int\.)|(^v\.)|(^vt\.)|(^vi\.)',x):
  7. n=-1
  8. elif n==-2:
  9. print(x)
  10. if n==-1:
  11. print("\n[-{0}]".format(x))
  12. n+=1
  13. elif n >-1:
  14. n+=1
  15. print("   {0}.{1}".format(n,x))
复制代码
1

评分人数

TOP

回复 28# 523066680


    多谢多谢,我刚刚睡觉去了!
啥都不懂,啥都不会!学的还慢!

TOP

本帖最后由 523066680 于 2016-8-31 12:00 编辑

大致匹配就行了
从样本可见,一般这种“词类”的缩写都是独占一行
可以像这样限定
  1. /^\w+\.\r?$/
复制代码
再严格一点的,它们应该都是小写
  1. /^[a-z]+\.\r?$/
复制代码

TOP

回复 26# happy886rr


    因为要处理的文本已经是处理过的,不会存在句点。而且抓取的单词也是在我的列表里的,我事先可以筛选一下!但是我考虑事情还是不全面!学习了!
啥都不懂,啥都不会!学的还慢!

TOP

本帖最后由 happy886rr 于 2016-8-31 11:38 编辑

回复 25# 949825667@qq.co
Mr、Ms、Mrs后边都要加点,还有很多英文公司名、地名、城市名、机构名、要加点,很多专业术语的解释也要加点。万一遇到句号点你怎么办
你的脚本很粗糙

TOP

回复 24# happy886rr


    多谢提醒,我再考虑考虑,不过我提取的单词里面没有这种缩略词!但是这种情况也要考虑在内!
啥都不懂,啥都不会!学的还慢!

TOP

回复 23# 949825667@qq.co

你遇到缩写单词怎么办,比如NO. 就是number的缩写。

TOP

回复 22# happy886rr


    是用正则匹配\w+\.了啊,这么匹配是有存在特例会出错么!感觉好像没问题啊!
啥都不懂,啥都不会!学的还慢!

TOP

回复 21# 949825667@qq.co
并不是遇到点号就标序号,是遇到n.
pron. adj. num. adv. v. art. prep. conj. int. vt. vi.这些行首词性缩写的行之后,才开始标序号。

TOP

  1. import re
  2. f = open('be.txt','r')
  3. n=0
  4. num=0
  5. for x in f.readlines():
  6.     x = x.strip()
  7.     if num == 1:
  8.         n = n + 1
  9.     if re.search(r'\w+\.',x):
  10.         num=1
  11.         n=0
  12.     if n>0 :
  13.         print(n,'.',x)
  14.     else:
  15.         print(x)
复制代码
抄袭版主的perl,不要打我!我就是试试!
1

评分人数

啥都不懂,啥都不会!学的还慢!

TOP

生成一个文件,然后两个文件合并

TOP

回复 18# 523066680


    受教了! 人丑就该多读书!
啥都不懂,啥都不会!学的还慢!

TOP

学而不思则罔,思而不学则"die"

英文:die,  通"殆"

TOP

脑子转不了弯!give up!只为了好玩学学了!
啥都不懂,啥都不会!学的还慢!

TOP

返回列表