【已解决】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 想到脱发了!:'( 只能做到
1.xxx
2.xxx
3.xxx
这样不停加下去 请把原始文件压缩一下传上来,代码能处理你自己编的数据不见得能处理你的原始文件。 源文件在附件里 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189688&ptid=41555]4#[/url] [i]GNU[/i] [/b]
源文件上传了,大神给看看吧!实在不行给点建议也行! [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189690&ptid=41555]6#[/url] [i]949825667@qq.co[/i] [/b]
你的源文件,到底要变成啥效果,表述不清晰,我不知道你的要求。 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189696&ptid=41555]8#[/url] [i]523066680[/i] [/b]
你这么说话也是没谁了!不知道你怎么看出来我懒得!没天赋倒是真的! 终结这个问题吧!被版主说的不好意思问了! 是不是这种结果?
[quote]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[/quote]
都这个当老师了还这么小肚鸡肠,胸襟大一点好不好?别人说你几句能不能别太当回事? [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189700&ptid=41555]10#[/url] [i]523066680[/i] [/b]
我没有啊,哪有小肚鸡肠- -!真无辜,能不能不要用你的位置或者心态来揣摩我的心态啊!我真没你想的那样! [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189700&ptid=41555]10#[/url] [i]523066680[/i] [/b]
你的结果是对的 [i=s] 本帖最后由 523066680 于 2016-8-30 11:59 编辑 [/i]
[font=consolas][size=15px][list=1][*]open [color=#007800]$SRC[/color],[color=#ff0000]"<:raw"[/color], [color=#ff0000]"be.txt"[/color] or die [color=#ff0000]"$!"[/color];
[*]open [color=#007800]$DST[/color],[color=#ff0000]">:raw"[/color], [color=#ff0000]"dst.txt"[/color];
[*]
[*]my [color=#007800]$n[/color] = [color=#000000]0[/color];
[*]my [color=#007800]$begin[/color] = [color=#000000]0[/color];
[*]
[*][color=#000000][b]for[/b][/color] my [color=#007800]$e[/color] [color=#7a0874][b]([/b][/color][color=#000000][b]<[/b][/color][color=#007800]$SRC[/color][color=#000000][b]>[/b][/color][color=#7a0874][b])[/b][/color]
[*][color=#7a0874][b]{[/b][/color]
[*] [color=#007800]$n[/color]++ [color=#000000][b]if[/b][/color] [color=#7a0874][b]([/b][/color][color=#007800]$begin[/color] == [color=#000000]1[/color][color=#7a0874][b])[/b][/color];
[*]
[*] [color=#000000][b]if[/b][/color] [color=#7a0874][b]([/b][/color][color=#007800]$e[/color]=~[color=#000000][b]/[/b][/color]\[color=#c20cb9][b]w[/b][/color]+\.[color=#000000][b]/[/b][/color][color=#7a0874][b])[/b][/color]
[*] [color=#7a0874][b]{[/b][/color]
[*] [color=#007800]$begin[/color] = [color=#000000]1[/color];
[*] [color=#007800]$n[/color] = [color=#000000]0[/color];
[*] [color=#7a0874][b]}[/b][/color]
[*]
[*] [color=#000000][b]if[/b][/color] [color=#7a0874][b]([/b][/color][color=#007800]$n[/color] [color=#000000][b]>[/b][/color] [color=#000000]0[/color][color=#7a0874][b])[/b][/color]
[*] [color=#7a0874][b]{[/b][/color]
[*] print [color=#007800]$DST[/color] [color=#ff0000]"[color=#007800]${n}[/color]."[/color];
[*] [color=#7a0874][b]}[/b][/color]
[*]
[*] print [color=#007800]$DST[/color] [color=#007800]$e[/color];
[*][color=#7a0874][b]}[/b][/color]
[*]
[*]close [color=#007800]$SRC[/color];
[*]close [color=#007800]$DST[/color];
[/list][/size][/font]
Perl,
应该有人一两行命令可以解决。 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189698&ptid=41555]9#[/url] [i]949825667@qq.co[/i] [/b]
你的规则是什么,是只要碰到有点号“.”,就开始标序号吗? [b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=189705&ptid=41555]14#[/url] [i]happy886rr[/i] [/b]
他应该还是在折腾单词翻译的事情,词汇解释下分不同类型 v. n. vt. ... 动词 名词
不同类型下有不同解释/造句/例子,给这些条目编号。 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189704&ptid=41555]13#[/url] [i]523066680[/i] [/b]
看了两天Python就钻牛角尖一心想用Python解决问题!看来我还是太蠢了!写代码可能真的不适合我! 脑子转不了弯!give up!只为了好玩学学了! 学而不思则罔,思而不学则"die"
英文:die, 通"殆" [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189710&ptid=41555]18#[/url] [i]523066680[/i] [/b]
受教了!:) 人丑就该多读书! 生成一个文件,然后两个文件合并 [code]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)[/code]抄袭版主的perl,不要打我!我就是试试! [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189799&ptid=41555]21#[/url] [i]949825667@qq.co[/i] [/b]
并不是遇到点号就标序号,是遇到n.
pron. adj. num. adv. v. art. prep. conj. int. vt. vi.这些行首词性缩写的行之后,才开始标序号。 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189800&ptid=41555]22#[/url] [i]happy886rr[/i] [/b]
是用正则匹配\w+\.了啊,这么匹配是有存在特例会出错么!感觉好像没问题啊! [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189801&ptid=41555]23#[/url] [i]949825667@qq.co[/i] [/b]
你遇到缩写单词怎么办,比如NO. 就是number的缩写。 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189802&ptid=41555]24#[/url] [i]happy886rr[/i] [/b]
多谢提醒,我再考虑考虑,不过我提取的单词里面没有这种缩略词!但是这种情况也要考虑在内! [i=s] 本帖最后由 happy886rr 于 2016-8-31 11:38 编辑 [/i]
[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189803&ptid=41555]25#[/url] [i]949825667@qq.co[/i] [/b]
Mr、Ms、Mrs后边都要加点,还有很多英文公司名、地名、城市名、机构名、要加点,很多专业术语的解释也要加点。万一遇到句号点你怎么办
你的脚本很粗糙 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189804&ptid=41555]26#[/url] [i]happy886rr[/i] [/b]
因为要处理的文本已经是处理过的,不会存在句点。而且抓取的单词也是在我的列表里的,我事先可以筛选一下!但是我考虑事情还是不全面!学习了! [i=s] 本帖最后由 523066680 于 2016-8-31 12:00 编辑 [/i]
大致匹配就行了
从样本可见,一般这种“词类”的缩写都是独占一行
可以像这样限定[code]/^\w+\.\r?$/[/code]再严格一点的,它们应该都是小写[code]/^[a-z]+\.\r?$/[/code] [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189806&ptid=41555]28#[/url] [i]523066680[/i] [/b]
多谢多谢,我刚刚睡觉去了! [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=189821&ptid=41555]29#[/url] [i]949825667@qq.co[/i] [/b]
其实你可以直接正则搜索词性缩写pron. adj. num. adv. v. art. prep. conj. int. vt. vi.,并且只用一个变量n,不需要num[code]#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))[/code]
页:
[1]