想要實現將文件中的數據全部讀取並存入一個列表的功能,文件內容如下,打算使用readlines()進行操作。
初始代碼:
1 f = open('page_id.txt', 'r', encoding='UTF-8') 2 lines = f.readlines()
在使用readlines()函數來讀取文件的時候,得到的結果卻是帶換行符\n的:
那么只能手動將列表中的\n消除掉。這邊總結兩個方案:
方案一:
f = open('page_id.txt', 'r', encoding='UTF-8') lines = f.readlines()for i in range(0,len(lines)-1): lines[i] = lines[i].strip('\n') print(lines)
使用for循環將列表中每個元素中的\n都刪掉,這里用到了strip()函數。用法貼在后面。
方案二:
f = open('page_id.txt', 'r', encoding='UTF-8') lines = f.readlines() l_length = len(lines) lines = ''.join(lines) #將列表類型轉換為字符轉類型 lines.strip('\n') #strip函數可以將字符串 lines = lines.split('\n') #將去掉\n之后的字符串再次轉換為列表,分隔符為換行\n print(lines)
這里經過了兩步轉換。
因為strip()函數只能對字符串進行操作,因此需要先將列表轉為字符串;在經過strip()函數操作之后,再將其用split()轉為列表。
在經過第一步轉換並使用strip()之后,得到的字符串如下,因此在轉列表的時候考慮以\n為分隔符進行split()操作。
兩個方法轉換完成之后的結果即我們想要的列表:
附strip函數用法:
函數原型
聲明:s為字符串,rm為要刪除的字符序列
s.strip(rm) 刪除s字符串中開頭、結尾處,位於 rm刪除序列的字符
s.lstrip(rm) 刪除s字符串中開頭處,位於 rm刪除序列的字符
s.rstrip(rm) 刪除s字符串中結尾處,位於 rm刪除序列的字符
注意:
當rm為空時,默認刪除空白符(包括'\n', '\r', '\t', ' ')