标题: [问题求助] 【已解决】Python怎样在文本特定行前添加数字? [打印本页]
作者: 949825667@qq.co 时间: 2016-8-30 10:51 标题: 【已解决】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
作者: 949825667@qq.co 时间: 2016-8-30 10:51
想到脱发了!
作者: 949825667@qq.co 时间: 2016-8-30 10:54
只能做到
1.xxx
2.xxx
3.xxx
这样不停加下去
作者: GNU 时间: 2016-8-30 11:16
请把原始文件压缩一下传上来,代码能处理你自己编的数据不见得能处理你的原始文件。
作者: 949825667@qq.co 时间: 2016-8-30 11:18
源文件在附件里
作者: 949825667@qq.co 时间: 2016-8-30 11:19
回复 4# GNU
源文件上传了,大神给看看吧!实在不行给点建议也行!
作者: happy886rr 时间: 2016-8-30 11:36
回复 6# 949825667@qq.co
你的源文件,到底要变成啥效果,表述不清晰,我不知道你的要求。
作者: 949825667@qq.co 时间: 2016-8-30 11:42
回复 8# 523066680
你这么说话也是没谁了!不知道你怎么看出来我懒得!没天赋倒是真的!
作者: 949825667@qq.co 时间: 2016-8-30 11:44
终结这个问题吧!被版主说的不好意思问了!
作者: 523066680 时间: 2016-8-30 11:51
是不是这种结果?
be
n.
1.a light strong brittle grey toxic bivalent metallic element
v.
1.have the quality of being; (copula, used with an adjective or a predicate noun)
2.be identical to; be someone or something
3.occupy a certain position or area; be somewhere
4.have an existence, be extant
5.happen, occur, take place
6.be identical or equivalent to
7.form or compose
8.work in a specific place, with a specific subject, or in a specific function
9.represent, as of a character on stage
10.spend or use time
11.have life, be alive
12.to remain unmolested, undisturbed, or uninterrupted -- used only in infinitive form
13.be priced at
都这个当老师了还这么小肚鸡肠,胸襟大一点好不好?别人说你几句能不能别太当回事?
作者: 949825667@qq.co 时间: 2016-8-30 11:52
回复 10# 523066680
我没有啊,哪有小肚鸡肠- -!真无辜,能不能不要用你的位置或者心态来揣摩我的心态啊!我真没你想的那样!
作者: 949825667@qq.co 时间: 2016-8-30 11:53
回复 10# 523066680
你的结果是对的
作者: 523066680 时间: 2016-8-30 11:56
本帖最后由 523066680 于 2016-8-30 11:59 编辑
- open $SRC,"<:raw", "be.txt" or die "$!";
- open $DST,">:raw", "dst.txt";
- my $n = 0;
- my $begin = 0;
- for my $e (<$SRC>)
- {
- $n++ if ($begin == 1);
- if ($e=~/\w+\./)
- {
- $begin = 1;
- $n = 0;
- }
- if ($n > 0)
- {
- print $DST "${n}.";
- }
- print $DST $e;
- }
- close $SRC;
- close $DST;
Perl,
应该有人一两行命令可以解决。
作者: happy886rr 时间: 2016-8-30 11:58
回复 9# 949825667@qq.co
你的规则是什么,是只要碰到有点号“.”,就开始标序号吗?
作者: 523066680 时间: 2016-8-30 12:00
回复 14# happy886rr
他应该还是在折腾单词翻译的事情,词汇解释下分不同类型 v. n. vt. ... 动词 名词
不同类型下有不同解释/造句/例子,给这些条目编号。
作者: 949825667@qq.co 时间: 2016-8-30 12:01
回复 13# 523066680
看了两天Python就钻牛角尖一心想用Python解决问题!看来我还是太蠢了!写代码可能真的不适合我!
作者: 949825667@qq.co 时间: 2016-8-30 12:05
脑子转不了弯!give up!只为了好玩学学了!
作者: 523066680 时间: 2016-8-30 12:05
学而不思则罔,思而不学则"die"
英文:die, 通"殆"
作者: 949825667@qq.co 时间: 2016-8-30 12:07
回复 18# 523066680
受教了! 人丑就该多读书!
作者: wskwfkbdn 时间: 2016-8-30 13:35
生成一个文件,然后两个文件合并
作者: 949825667@qq.co 时间: 2016-8-31 10:49
- import re
- f = open('be.txt','r')
- n=0
- num=0
- for x in f.readlines():
- x = x.strip()
- if num == 1:
- n = n + 1
- if re.search(r'\w+\.',x):
- num=1
- n=0
- if n>0 :
- print(n,'.',x)
- else:
- print(x)
复制代码
抄袭版主的perl,不要打我!我就是试试!
作者: happy886rr 时间: 2016-8-31 11:07
回复 21# 949825667@qq.co
并不是遇到点号就标序号,是遇到n.
pron. adj. num. adv. v. art. prep. conj. int. vt. vi.这些行首词性缩写的行之后,才开始标序号。
作者: 949825667@qq.co 时间: 2016-8-31 11:19
回复 22# happy886rr
是用正则匹配\w+\.了啊,这么匹配是有存在特例会出错么!感觉好像没问题啊!
作者: happy886rr 时间: 2016-8-31 11:23
回复 23# 949825667@qq.co
你遇到缩写单词怎么办,比如NO. 就是number的缩写。
作者: 949825667@qq.co 时间: 2016-8-31 11:24
回复 24# happy886rr
多谢提醒,我再考虑考虑,不过我提取的单词里面没有这种缩略词!但是这种情况也要考虑在内!
作者: happy886rr 时间: 2016-8-31 11:34
本帖最后由 happy886rr 于 2016-8-31 11:38 编辑
回复 25# 949825667@qq.co
Mr、Ms、Mrs后边都要加点,还有很多英文公司名、地名、城市名、机构名、要加点,很多专业术语的解释也要加点。万一遇到句号点你怎么办
你的脚本很粗糙
作者: 949825667@qq.co 时间: 2016-8-31 11:38
回复 26# happy886rr
因为要处理的文本已经是处理过的,不会存在句点。而且抓取的单词也是在我的列表里的,我事先可以筛选一下!但是我考虑事情还是不全面!学习了!
作者: 523066680 时间: 2016-8-31 11:51
本帖最后由 523066680 于 2016-8-31 12:00 编辑
大致匹配就行了
从样本可见,一般这种“词类”的缩写都是独占一行
可以像这样限定复制代码
再严格一点的,它们应该都是小写复制代码
作者: 949825667@qq.co 时间: 2016-8-31 14:24
回复 28# 523066680
多谢多谢,我刚刚睡觉去了!
作者: happy886rr 时间: 2016-8-31 18:29
回复 29# 949825667@qq.co
其实你可以直接正则搜索词性缩写pron. adj. num. adv. v. art. prep. conj. int. vt. vi.,并且只用一个变量n,不需要num- #Date:2016/8/31
- import re
- f=open('be.txt','r');n=-2
- for x in f.readlines():
- x=x.strip()
- if re.search(r'(^n\.)|(^pron\.)|(^adj\.)|(^adv\.)|(^num\.)|(^art\.)|(^prep\.)|(^conj\.)|(^int\.)|(^v\.)|(^vt\.)|(^vi\.)',x):
- n=-1
- elif n==-2:
- print(x)
- if n==-1:
- print("\n[-{0}]".format(x))
- n+=1
- elif n >-1:
- n+=1
- print(" {0}.{1}".format(n,x))
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |