修改歌詞 檔案讀寫 replace的使用

2021-08-19 22:49:40 字數 4396 閱讀 3507

slist = list(open('d:\\學習\python\\各章實驗內容答案與素材參考\\ch5\\文字檔案\\song2.txt', 'r'))

print(slist)

print('end')

for i in slist:

if i == '\n':

slist.remove(i)

else:

continue

print(slist)

print('end')

strlist = ''.join(slist)

print(type(strlist))

print(strlist)

nnf = open('c:\\users\\li wanru\\desktop\\newsong2.txt','w')

strr = strlist.replace('我的中國','我的祖國')#strlist是字串

print(strr)

nnf.write(strr)

nnf.close()

書上的答案:

slist = list(open('d:\\學習\python\\各章實驗內容答案與素材參考\\ch5\\文字檔案\\song2.txt', 'r'))

print(slist)

print('end')

n = slist.count('\n') # 這裡數的是單獨的\n

for i in range(1, n + 1):

slist.remove('\n')

for i in range(0, len(slist)):

slist[i] = slist[i].replace('我的中國', '我的祖國')

print(slist)

print('end')

nnf = open('c:\\users\\li wanru\\desktop\\newsong3.txt', 'w')

for x in slist:

print(x, end='')

nnf.write(x)

nnf.close()

書上的思考:如果把

for i in range(0, len(slist)):

slist[i] = slist[i].replace('我的中國', '我的祖國')

替換為迴圈迭代語句

for x in s:

x.replace('我的中國','我的祖國')

能不能達到同樣的效果。

實驗後發現是不行的。因為字串通過replace操作沒有被修改。

如果再賦值呢?

slist = list(open('d:\\學習\python\\各章實驗內容答案與素材參考\\ch5\\文字檔案\\song2.txt', 'r'))

print(slist)

print('end')

n = slist.count('\n') # 這裡數的是單獨的\n

for i in range(1, n + 1):

slist.remove('\n')

for x in slist:

x = x.replace('我的中國','我的祖國')

print(x)

print(slist)

print('end')

nnf = open('c:\\users\\li wanru\\desktop\\newsong5.txt', 'w')

for x in slist:

print(x, end='')

nnf.write(x)

nnf.close()

得到的結果很有趣

['今天是你的生日\n', '\n', '今天是你的生日我的中國\n', '\n', '清晨我放飛一群白鴿\n', '\n', '為你銜來一枚橄欖葉\n', '\n', '鴿子在叢山峻嶺飛過\n', '\n', '我們祝福你的生日我的中國\n', '\n', '願你永遠沒有憂患永遠寧靜\n', '\n', '我們祝福你的生日我的祖國\n', '\n', '這是兒女們心中期望的歌\n', '\n', '今天是你的生日我的祖國\n', '\n', '清晨我放飛一群白鴿\n', '\n', '為你帶回遠方兒女的思念\n', '\n', '鴿子在茫茫海天飛過\n', '\n', '我們祝福你的生日我的祖國\n', '\n', '願你月兒常圓兒女永遠歡樂\n', '\n', '我們祝福你的生日我的祖國\n', '\n', '這是兒女在遠方愛的訴說\n', '\n', '今天是你的生日我的祖國\n', '\n', '清晨我放飛一群白鴿\n', '\n', '為你銜來一棵金色麥穗\n', '\n', '鴿子在風風雨雨中飛過\n', '\n', '我們祝福你的生日我的祖國\n', '\n', '願你逆風起飛雨中獲得收穫\n', '\n', '我們祝福你的生日我的中國\n', '\n', '這是兒女們心中希望的歌']

end今天是你的生日

今天是你的生日我的祖國

清晨我放飛一群白鴿

為你銜來一枚橄欖葉

鴿子在叢山峻嶺飛過

我們祝福你的生日我的祖國

願你永遠沒有憂患永遠寧靜

我們祝福你的生日我的祖國

這是兒女們心中期望的歌

今天是你的生日我的祖國

清晨我放飛一群白鴿

為你帶回遠方兒女的思念

鴿子在茫茫海天飛過

我們祝福你的生日我的祖國

願你月兒常圓兒女永遠歡樂

我們祝福你的生日我的祖國

這是兒女在遠方愛的訴說

今天是你的生日我的祖國

清晨我放飛一群白鴿

為你銜來一棵金色麥穗

鴿子在風風雨雨中飛過

我們祝福你的生日我的祖國

願你逆風起飛雨中獲得收穫

我們祝福你的生日我的祖國

這是兒女們心中希望的歌

['今天是你的生日\n', '今天是你的生日我的中國\n', '清晨我放飛一群白鴿\n', '為你銜來一枚橄欖葉\n', '鴿子在叢山峻嶺飛過\n', '我們祝福你的生日我的中國\n', '願你永遠沒有憂患永遠寧靜\n', '我們祝福你的生日我的祖國\n', '這是兒女們心中期望的歌\n', '今天是你的生日我的祖國\n', '清晨我放飛一群白鴿\n', '為你帶回遠方兒女的思念\n', '鴿子在茫茫海天飛過\n', '我們祝福你的生日我的祖國\n', '願你月兒常圓兒女永遠歡樂\n', '我們祝福你的生日我的祖國\n', '這是兒女在遠方愛的訴說\n', '今天是你的生日我的祖國\n', '清晨我放飛一群白鴿\n', '為你銜來一棵金色麥穗\n', '鴿子在風風雨雨中飛過\n', '我們祝福你的生日我的祖國\n', '願你逆風起飛雨中獲得收穫\n', '我們祝福你的生日我的中國\n', '這是兒女們心中希望的歌']

end今天是你的生日

今天是你的生日我的中國

清晨我放飛一群白鴿

為你銜來一枚橄欖葉

鴿子在叢山峻嶺飛過

我們祝福你的生日我的中國

願你永遠沒有憂患永遠寧靜

我們祝福你的生日我的祖國

這是兒女們心中期望的歌

今天是你的生日我的祖國

清晨我放飛一群白鴿

為你帶回遠方兒女的思念

鴿子在茫茫海天飛過

我們祝福你的生日我的祖國

願你月兒常圓兒女永遠歡樂

我們祝福你的生日我的祖國

這是兒女在遠方愛的訴說

今天是你的生日我的祖國

清晨我放飛一群白鴿

為你銜來一棵金色麥穗

鴿子在風風雨雨中飛過

我們祝福你的生日我的祖國

願你逆風起飛雨中獲得收穫

我們祝福你的生日我的中國

這是兒女們心中希望的歌

>>>

可以看到,x被替換了,但是列表項並沒有發生改變。

做以下實驗

alist = ['aa', 'ab', 'ac']

for i in alist:

i = i.replace('a', 'z')

print(i)#注意縮排,如果與開頭並齊,則只會輸出zc

print(alist)

得到結果

zz

zbzc

['aa', 'ab', 'ac']

如果這樣

alist = ['aa', 'ab', 'ac']

for num in range(0,len(alist)):

alist[num] = alist[num].replace('a', 'z')

print(alist[num])

print(alist)

則得到期望的效果

zz

zbzc

['zz', 'zb', 'zc']

SQLServer批量修改 replace函式

update tb rkth detail set rkthid replace rkthid,substring rkthid,3,4 2010 where substring rkthid,3,4 2005 sqlserver批量修改 replace函式 replace 用第三個表示式替換第乙個...

ant修改檔案中的內容 replace命令的使用

一 replace命令 上面的replace命令用起來很簡單,但沒有辦法做正則匹配,如果要替換的字串,是需要用正則來描述的,可以用replaceregexp byline true 表示替換所有滿足條件的字串,若設為false,則只會替換第乙個滿足正規表示式的字串 pattern 1 9 0 9 表...

chmod 命令修改檔案讀寫許可權

ubuntu chmod 命令可以用來修改檔案或資料夾的讀寫許可權 chmod 命令有兩種使用方式 一 chmod u g o a r w x filename 裡都代表的意思 u表示user,是檔案的所有者 g表示跟user同group的使用者 o表示other,即其他使用者 a表示all,所有使...