Python 更改字符串中的单词以使文本文件大写
为了修复一堆全大写文本文件,我编写了一个脚本:Python 更改字符串中的单词以使文本文件大写,python,Python,为了修复一堆全大写文本文件,我编写了一个脚本: 降低所有字符并大写每行的第一个字和句点后的第一个字 将城市和国家名称列表中的所有单词大写(来自另一个文本文件) def lowit(行): line=line.lower() 句子=行。拆分('.')) 句子2=[句子[0]。大写()+句子[1:]表示句子中的句子] string2='.'。连接(句子2) 返回线2 def capcico(行,所有关键字): allWords=行分割(“”) 原始=行分割(“”) 对于i,枚举中的单词(所有单词):
def lowit(行):
line=line.lower()
句子=行。拆分('.'))
句子2=[句子[0]。大写()+句子[1:]表示句子中的句子]
string2='.'。连接(句子2)
返回线2
def capcico(行,所有关键字):
allWords=行分割(“”)
原始=行分割(“”)
对于i,枚举中的单词(所有单词):
单词=单词。替换(',','')
单词=单词。替换('.','')
单词=单词。替换(“;”,“”)
如果所有关键字中有单词:
原件[i]=原件[i]。大写()
返回“”。加入(原始)
def main():
dfile=open('fixed.txt','w')
f=打开('allist.txt','r')
allKeywords=f.read().split('\n')
以open('ulm.txt','r')作为文件输入:
对于文件输入中的行:
low_线=lowit(线)
写入('\n'+capcico(低位线,所有关键字))
dfile.close()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
它是可行的,但问题是,如果同一行中有多个城市/国家,它就不会将其资本化:
德国伍尔滕堡镇
更改:
德国伍尔滕堡镇
有什么问题吗?因为“德国”实际上是“德国”\n。 去掉单词的下线
words = words.replace(',', '')
words = words.replace('.', '')
words = words.replace(';', '')
# Add in this line to strip the EOL
words = words.rstrip('\r\n')
这似乎不仅仅是改变字母的大小写,为什么要改变城市和县的位置呢?(虽然伍尔滕堡是一个地区/州,而不是一个城市)为什么要导入
chain
和string
但从不使用它们?好的,我会解决这个问题。还修复了位置,这是一个打字错误。。。谢谢你解决了这个问题,谢谢你!我知道你应该能够阅读代码,但是如果你能解释一下你做了什么,那会很有帮助。不是批评,只是有助于理解。谢谢,但做得很好。你的建议把段落的第一个字用小写。。。
#Input
fileinput = open("ulm.txt").read()
##Input lower
filow = fileinput.lower()
#Keywords
allKeywords = open("allist.txt").read().split("\n")
for kw in allKeywords:
filow = filow.replace(kw.strip().lower(), kw.capitalize())
#Dots
fidots = filow.split(".")
for i,d in enumerate(fidots):
c = d.strip().capitalize()
dc = d.replace(c.lower(), c)
fidots[i] = dc
#Result
dfile = open("fixed.txt", "w")
result = ".".join(fidots)
dfile.write(result)
dfile.close()