簡體   English   中英

從.txt文件中提取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM