马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 神愿 于 2022-2-8 20:34 编辑
我需要提取【原文】内容,并除去类似于1·12这样的标题,
但是为什么数字去除不完全呢?
fi = open("论语-网络版.txt","r",encoding="utf-8")
fo = open("论语-提取版.txt","w")
wflag = False
for line in fi:
if"【" in line:
wflag = False
if "【原文】" in line:
wflag = True
continue
if wflag == True:
for i in range(25):
for j in range(25):
line = line.replace("{}·{}".format(i,j),"")
fo.write(line)
fi.close()
fo.close()
原文件部分内容:
【原文】
20·2子张问孔子曰:“何如斯可以从政矣?”子曰:“尊五美,屏四恶,斯可以从政矣。”子张曰:“何谓五美?”子曰:“君子惠而不费,劳而不怨,欲而不贪,泰而不骄,威而不猛。”子张曰:“何谓惠而不费?”子曰:“因民之所利而利之,斯不亦惠而不费乎?择可劳而劳之,又谁怨?欲仁而得仁,又焉贪?君子无众寡,无大小,无敢慢,斯不亦泰而不骄乎?君子正其衣冠,尊其瞻视,俨然人望而畏之,斯不亦威而不猛乎?”子张曰:“何谓四恶?”子曰:“不教而杀谓之虐;不戒视成谓之暴;慢令致期谓之贼;犹之与人也,出纳之吝谓之有司。”
【译文】
子张问孔子说:“怎样才可以治理政事呢?”孔子说:“尊重五种美德,排除四种恶政,这样就可以治理政事了。”子张问:“五种美德是什么?”孔子说:“君子要给百姓以恩惠而自已却无所耗费;使百姓劳作而不使他们怨恨;要追求仁德而不贪图财利;庄重而不傲慢;威严而不凶猛。”子张说:“怎样叫要给百姓以恩惠而自己却无所耗费呢?”孔子说:“让百姓们去做对他们有利的事,这不就是对百姓有利而不掏自己的腰包嘛!选择可以让百姓劳作的时间和事情让百姓去做。这又有谁会怨恨呢?自己要追求仁德便得到了仁,又还有什么可贪的呢?君子对人,无论多少,势力大小,都不怠慢他们,这不就是庄重而不傲慢吗?君子衣冠整齐,目不邪视,使人见了就让人生敬畏之心,这不也是威严而不凶猛吗?”子张问:“什么叫四种恶政呢?”孔子说:“不经教化便加以杀戮叫做虐;不加告诫便要求成功叫做暴;不加监督而突然限期叫做贼,同样是给人财物,却出手吝啬,叫做小气。”
【评析】
这是子张向孔子请教为官从政的要领。这里,孔子讲了“五美四恶”,这是他政治主张的基本点,其中包含有丰富的“民本”思想,比如:“因民之所利而利之”,“择可劳而劳之”,反对“不教而杀”、“不戒视成”的暴虐之政。从这里可以看出,孔子对德治、礼治社会有自己独到的主张,在今天仍不失其重要的借鉴价值。
【原文】
20·3孔子曰:“不知命,无以为君子也;不知礼,无以立也;不知信,无以知人也。”
【译文】
孔子说:“不懂得天命,就不能做君子;不知道礼仪,就不能立身处世;不善于分辨别人的话语,就不能真正了解他。”
【评析】
这一章,孔子再次向君子提出三点要求,即“知命”、“知礼”、“知言”,这是君子立身处世需要特别注意的问题。《论语》一书最后一章谈君子人格的内容,表明此书之侧重点,就在于塑造具有理想人格的君子,培养治国安邦平天下的志士仁人。
提取后:
2子张问孔子曰:“何如斯可以从政矣?”子曰:“尊五美,屏四恶,斯可以从政矣。”子张曰:“何谓五美?”子曰:“君子惠而不费,劳而不怨,欲而不贪,泰而不骄,威而不猛。”子张曰:“何谓惠而不费?”子曰:“因民之所利而利之,斯不亦惠而不费乎?择可劳而劳之,又谁怨?欲仁而得仁,又焉贪?君子无众寡,无大小,无敢慢,斯不亦泰而不骄乎?君子正其衣冠,尊其瞻视,俨然人望而畏之,斯不亦威而不猛乎?”子张曰:“何谓四恶?”子曰:“不教而杀谓之虐;不戒视成谓之暴;慢令致期谓之贼;犹之与人也,出纳之吝谓之有司。”
2孔子曰:“不知命,无以为君子也;不知礼,无以立也;不知信,无以知人也。”
本来想去掉所有数字,没想到还有残留,不知道我的代码哪里有漏洞
其实我还不太理解,程序是怎么把原文提取出来的
我找到了正确的代码
但是为什么第一版代码无法达到目的呢?
fi = open("论语-网络版.txt","r",encoding="utf-8")
fo = open("论语-提取版.txt","w")
wflag = False
for line in fi:
if"【" in line:
wflag = False
if "【原文】" in line:
wflag = True
continue
if wflag == True:
for i in range(25):
for j in range(25):
line = line.replace("{}·{}".format(i,j),"**")
for i in range(10):
line = line.replace("*{}".format(i),"")
for i in range(10):
line = line.replace("{}*".format(i),"")
line = line.replace("*","")
fo.write(line)
fi.close()
fo.close()
|