找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: 949825667@qq.co

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

[复制链接]
 楼主| 发表于 2016-8-30 12:01:35 | 显示全部楼层
回复 13# 523066680


    看了两天Python就钻牛角尖一心想用Python解决问题!看来我还是太蠢了!写代码可能真的不适合我!
 楼主| 发表于 2016-8-30 12:05:29 | 显示全部楼层
脑子转不了弯!give up!只为了好玩学学了!
发表于 2016-8-30 12:05:36 | 显示全部楼层
学而不思则罔,思而不学则"die"

英文:die,  通"殆"
 楼主| 发表于 2016-8-30 12:07:58 | 显示全部楼层
回复 18# 523066680


    受教了! 人丑就该多读书!
发表于 2016-8-30 13:35:32 | 显示全部楼层
生成一个文件,然后两个文件合并
 楼主| 发表于 2016-8-31 10:49:26 | 显示全部楼层
  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,不要打我!我就是试试!

评分

参与人数 1PB +6 收起 理由
523066680 + 6 很好,比Perl整洁

查看全部评分

发表于 2016-8-31 11:07:08 | 显示全部楼层
回复 21# 949825667@qq.co
并不是遇到点号就标序号,是遇到n.
pron. adj. num. adv. v. art. prep. conj. int. vt. vi.这些行首词性缩写的行之后,才开始标序号。
 楼主| 发表于 2016-8-31 11:19:45 | 显示全部楼层
回复 22# happy886rr


    是用正则匹配\w+\.了啊,这么匹配是有存在特例会出错么!感觉好像没问题啊!
发表于 2016-8-31 11:23:25 | 显示全部楼层
回复 23# 949825667@qq.co

你遇到缩写单词怎么办,比如NO. 就是number的缩写。
 楼主| 发表于 2016-8-31 11:24:45 | 显示全部楼层
回复 24# happy886rr


    多谢提醒,我再考虑考虑,不过我提取的单词里面没有这种缩略词!但是这种情况也要考虑在内!
发表于 2016-8-31 11:34:13 | 显示全部楼层
本帖最后由 happy886rr 于 2016-8-31 11:38 编辑

回复 25# 949825667@qq.co
Mr、Ms、Mrs后边都要加点,还有很多英文公司名、地名、城市名、机构名、要加点,很多专业术语的解释也要加点。万一遇到句号点你怎么办
你的脚本很粗糙
 楼主| 发表于 2016-8-31 11:38:20 | 显示全部楼层
回复 26# happy886rr


    因为要处理的文本已经是处理过的,不会存在句点。而且抓取的单词也是在我的列表里的,我事先可以筛选一下!但是我考虑事情还是不全面!学习了!
发表于 2016-8-31 11:51:20 | 显示全部楼层
本帖最后由 523066680 于 2016-8-31 12:00 编辑

大致匹配就行了
从样本可见,一般这种“词类”的缩写都是独占一行
可以像这样限定
  1. /^\w+\.\r?$/
复制代码
再严格一点的,它们应该都是小写
  1. /^[a-z]+\.\r?$/
复制代码
 楼主| 发表于 2016-8-31 14:24:18 | 显示全部楼层
回复 28# 523066680


    多谢多谢,我刚刚睡觉去了!
发表于 2016-8-31 18:29:11 | 显示全部楼层
回复 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技术 +1 收起 理由
taofan712 + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:33 , Processed in 0.021633 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表