如何分隔文本文件中同一行的文本?
How to separate text in same line in text file?
我试图读取文本文件中的每一行,其中每一行都包含 ID、用户名、密码,并将这些文本(ID、用户名、密码)附加到列表中。我尝试使用分隔这些文本(id、用户名、密码)
|并使用 .find("|") 搜索起始 |和结束 |对于文本,但它不起作用。任何帮助将不胜感激。
test.txt
|ctm1|Jackson|Jacksonmartinez123
|ctm2|Kaijun|Kaijunmartin
Python 文件
user = []
with open("test.txt",'r') as userfile:
# for each line in test.txt, append id,username and password
# seperate id,username and password by finding "|"
for line in userfile.readlines():
id = line[line.find("|"):line.find("|")]
username = line[line.find("|"):line.find("|")]
password = line[line.find("|"):]
user.append([id.strip("|"),username.strip("|"),password.lstrip("|").rstrip("\n")])
print(user)
输出:
[['', '', 'ctm1|Jackson|Jacksonmartinez123'], ['', '', 'ctm2|Kaijun|Kaijunmartin']]
预期输出:
[['ctm1', 'Jackson', 'Jacksonmartinez123'], ['ctm2', 'Kaijun', 'Kaijunmartin']]
使用csv
模块
例如:
import csv
with open("test.txt") as userfile:
reader = csv.reader(userfile, delimiter="|")
print(list(reader))
我相信你想要拆分?不脱衣?这是解决方案的核心。
string1 = 'ctm1|Jackson|Jacksonmartinez123'
string2 = string1.split('|')
print(string2)
username = line[line.find("|"):line.find("|")]
line.find("|") 将 return 相同。所以这自然是一个空字符串。
这个解决方案应该有效
user = []
with open("test.txt","r") as userfile:
# for each line in test.txt, append id,username and password
# separate id,username and password by splitting "|"
for line in userfile.readlines():
ID = line.split("|")[1]
username = line.split("|")[2]
password = line.split("|")[3].rstrip("\n")
user.append([ID,username,password])
print(user)
正如其他用户所提到的,我使用了 split 而不是 find
这是我的解决方案,尽管其他的看起来也很不错。不需要额外的模块,并且与您提供的示例文本完全一致。
user = []
with open("test.txt",'r') as userfile:
for line in userfile.readlines():
user.append(line.strip().split("|")[1:4])
print(user)
我试图读取文本文件中的每一行,其中每一行都包含 ID、用户名、密码,并将这些文本(ID、用户名、密码)附加到列表中。我尝试使用分隔这些文本(id、用户名、密码) |并使用 .find("|") 搜索起始 |和结束 |对于文本,但它不起作用。任何帮助将不胜感激。
test.txt
|ctm1|Jackson|Jacksonmartinez123
|ctm2|Kaijun|Kaijunmartin
Python 文件
user = []
with open("test.txt",'r') as userfile:
# for each line in test.txt, append id,username and password
# seperate id,username and password by finding "|"
for line in userfile.readlines():
id = line[line.find("|"):line.find("|")]
username = line[line.find("|"):line.find("|")]
password = line[line.find("|"):]
user.append([id.strip("|"),username.strip("|"),password.lstrip("|").rstrip("\n")])
print(user)
输出:
[['', '', 'ctm1|Jackson|Jacksonmartinez123'], ['', '', 'ctm2|Kaijun|Kaijunmartin']]
预期输出:
[['ctm1', 'Jackson', 'Jacksonmartinez123'], ['ctm2', 'Kaijun', 'Kaijunmartin']]
使用csv
模块
例如:
import csv
with open("test.txt") as userfile:
reader = csv.reader(userfile, delimiter="|")
print(list(reader))
我相信你想要拆分?不脱衣?这是解决方案的核心。
string1 = 'ctm1|Jackson|Jacksonmartinez123'
string2 = string1.split('|')
print(string2)
username = line[line.find("|"):line.find("|")]
line.find("|") 将 return 相同。所以这自然是一个空字符串。
这个解决方案应该有效
user = []
with open("test.txt","r") as userfile:
# for each line in test.txt, append id,username and password
# separate id,username and password by splitting "|"
for line in userfile.readlines():
ID = line.split("|")[1]
username = line.split("|")[2]
password = line.split("|")[3].rstrip("\n")
user.append([ID,username,password])
print(user)
正如其他用户所提到的,我使用了 split 而不是 find
这是我的解决方案,尽管其他的看起来也很不错。不需要额外的模块,并且与您提供的示例文本完全一致。
user = []
with open("test.txt",'r') as userfile:
for line in userfile.readlines():
user.append(line.strip().split("|")[1:4])
print(user)