Python 三種讀文件方法read(), readline(), readlines()及去掉換行符\n
首先, 讓我們看下數據demo.txt
, 就兩行數據.
35durant
teamGSW
1. read()
with open("demo.txt", "r") as f: data = f.read() print(data) print(type(data)) output[1]: 35durant teamGSW
這種方法直接將所有的數據一次性讀取出來, data的數據類型是一個字符串
2. readline()
with open("demo.txt", "r") as f: data = f.readline() print(data) print(type(data)) output[1]: 35durant <class 'str'>
該方法讀取的是一行內容, 然后是帶換行符的, 所有會有空行, 后續會說明如何去掉換行符”\n”.
3. readlines()
with open("demo.txt", "r") as f: data = f.readlines() print(data) print(type(data)) output[1]: ['35durant\n', 'teamGSW'] <class 'list'>
這種方法返回的是一個列表, 注意換行符是包含在字符串的內容中.
接下來說明, 如何在讀取文本文件時去掉字符串中的換行符: “\n”.
這里以readlines()方法返回的list與read()方法返回的str為例, 分別進行說明.
方法1: 基於list的索引操作
with open("demo.txt", "r") as f: data = f.readlines() print(data) a = data[0][:-1] b = data[1] print(a, b) output[1]: ['35durant\n', 'teamGSW'] 35durant teamGSW
方法2: 基於str的splitlines()方法
with open("demo.txt", "r") as f: data = f.read().splitlines() print(data) output[1]: ['35durant', 'teamGSW']
使用strip()函數去掉每行結束的\n
例如:
1)
for line in file.readlines():
line=line.strip('\n')
2)
#讀取 ip地址文件 寫入 ip_address 列表
ip_address = []
with open('ip.txt', 'r') as f1:
for ip in f1.readlines():
if ip != None:
# 從文件中讀取行數據時,會帶換行符,使用strip函數去掉 換行符后存入列表
ip_address.append(ip.strip("\n"))
f1.close()
strip()函數原型
聲明:s為字符串,rm為要刪除的字符序列
s.strip(rm) 刪除s字符串中開頭、結尾處,位於 rm刪除序列的字符
s.lstrip(rm) 刪除s字符串中開頭處,位於 rm刪除序列的字符
s.rstrip(rm) 刪除s字符串中結尾處,位於 rm刪除序列的字符
注意:
當rm為空時,默認刪除空白符(包括'\n', '\r', '\t', ' ')