我正在尝试获取输入文本文件并将每个“i”本身设为大写。到目前为止,这是我的代码,但它创建了一长行代码,而不是保留换行符和段落。
with open("greenEggsAndHam.txt", "r") as myfile:
iText = myfile.read().split()
oText = ''
for word in iText:
if(word == "i"):
word = word.upper()
oText = oText + word + " "
print oText
输出现在是这样的:
I am Sam Sam I am That Sam-i-am!That Sam-i-am! I do not like that Sam-i-am!
而不是这个:
I am Sam
Sam I am
That Sam-i-am!
That Sam-i-am!
I do not like that Sam-i-am!
有没有办法在保留段落和换行符的同时做到这一点?
最佳答案
当您将文本拆分为一个大的单个单词列表时,您的代码会失败,因此所有换行符都会被删除,这就是为什么您留下一大行文本。
您可以在迭代文件对象时分割每一行并检查 i
:
with open("greenEggsAndHam.txt", "r") as myfile:
for line in myfile:
print(" ".join([w.upper() if w == "i" else w for w in line.split()]))
如果您想要一大段文字:
with open("greenEggsAndHam.txt", "r") as myfile:
text = "\n".join([" ".join([ch.upper() if ch == "i" else ch for ch in line.split()]) for line in myfi
关于python - 如何将字符串中的单个字母变成大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37082185/