使用readlines()讀取文件時出現/n及其解決辦法


想要實現將文件中的數據全部讀取並存入一個列表的功能,文件內容如下,打算使用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',  ' ')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM