[英]Extracting data from a .txt file
我的sample.txt文件中有以下數據:
A2B3,32:45:63
A4N6,17:72:35
S2R3,13:14:99
我想做的是將這些數據放入一個數組,但是用逗號分隔它們時遇到了問題。
我的代碼是這樣的:
with open('sample.txt', 'r') as f:
for line in f:
x = f.read().splitlines()
print(x)
輸出如下:
['A2B3,32:45:63','A4N6,17:72:35','S2R3,13:14:99']
我以不同的方式更改了代碼,以逗號分隔這兩個變量,但我似乎無法使其正常工作。 有人可以幫助我實現此輸出嗎?
['A2B3','32:45:63','A4N6','17:72:35','S2R3','13:14:99']
使用line.split(',')
分隔“,”處的行。
x = []
with open('sample.txt', 'r') as f:
for line in f:
for j in line.split(','):
x.append(j.split('\n')[0])
print(x)
您可能可以做:
data = list()
with open('sample.txt', 'r') as f:
for line in f.readlines():
data.append(line)
您應該以附加行列表結尾。 由於.readlines()是在C語言中實現的,因此不會在內存中加載整個文件,因此在大文件上比.splitlines()更快。
使用此代碼,它會將行像您一樣拆分為一個列表,然后在逗號處拆分這些項目。
filename = "sample.txt"
with open(filename) as file:
lines = file.read().split("\n")
output = []
for l in lines:
for j in l.split(","):
output.append(j)
print(output)
輸出:
['A2B3', '32:45:63', 'A4N6', '17:72:35', 'S2R3', '13:14:99']
是的,這很簡單...
分隔所有行后,您將看到列表
['A2B3,32:45:63','A4N6,17:72:35','S2R3,13:14:99']
然后再用逗號(,)分隔每個元素,然后將其添加到新列表中,例如
list_a = ['A2B3,32:45:63','A4N6,17:72:35','S2R3,13:14:99']
final_list = []
for i in list_a:
part_1, part_2 = i.split(',')
final_list.append(part_1)
final_list.append(part_2)
print(final_list)
它會給你想要的輸出
['A2B3','32:45:63','A4N6','17:72:35','S2R3','13:14:99']
這不是多余的方法,但是對您來說很容易理解
謝謝 :)
在這里,您只需重復遍歷一次即可:
res = []
with open('sample.txt', 'r') as f:
for line in f:
res += line.strip().split(",")
print(res)
得到:
['A2B3', '32:45:63', 'A4N6', '17:72:35', 'S2R3', '13:14:99']
盡管我想知道為什么要在列表中包含所有內容,但我認為您缺少項目之間的鏈接,將它們保留在這樣的元組中可能更有用:
res = []
with open('sample.txt', 'r') as f:
for line in f:
res.append(tuple(line.strip().split(",")))
print(res)
得到:
[('A2B3', '32:45:63'), ('A4N6', '17:72:35'), ('S2R3', '13:14:99')]
FMPOV這個結果更好。 但沒關系,我想,您會從這里提出的解決方案之一中找到解決方案。
x = [i.replace("\n","").split(',')for i in open('data.txt', 'r')]
print(x)
print(x[0][1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.