我正在嘗試編寫一個代碼,使每行的第一個字母都大寫,但它無法執行到第 6 行之后if l[0].islower():。當它l[0]在循環之外時工作正常,但當我將其放回循環中時總是顯示“字符串索引超出范圍”。m = open(r"C:\Users\■■■■■■\Desktop\■■■■\other.txt","r", encoding = "utf-8") #Just blocking the text outwhile True: l = m.readline() if l[0].islower(): l.replace(l[0],l[0].upper()) print(l) if not l: breakm.close()
3 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
您還可以更輕松地逐行迭代文件。
path = r"other.txt"
with open(path, 'r') as file:
? ? for line in file:
? ? ? ? print(line.capitalize())

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
l[0]將檢查放在循環的開頭而不是結尾,因為即使lis也會繼續訪問None。
while True:
l = m.readline()
if not l:
break
if l[0].islower():
l.replace(l[0],l[0].upper())
print(l)
m.close()

SMILET
TA貢獻1796條經驗 獲得超4個贊
with open("content.txt", 'r') as file:
while 1:
content = file.readline()
if not content:
break
print(content.capitalize())
print("Done !")
你可以用這個。
添加回答
舉報
0/150
提交
取消