簡體   English   中英

在Python中逐行讀取文本文件並將其存儲為struct作為圖形坐標

[英]Reading text file line by line in Python and storing into struct as coordinates for graphing

我有一個這樣訂購的文本文件:

A,1,1

B,1,5

C,3,7

D,5,5

E,5,1

字母是節點標簽,第一個數字是x坐標,第二個數字是ay坐標。

我正在嘗試將這些“節點”存儲為不同數組的片段(即,字母標簽存儲在元素位置的一個數組中,x坐標存儲在匹配元素位置的數組中,y坐標存儲到匹配元素的數組中元素位置)

因此,對於我的第一個節點,我將擁有:

A在nodeLabel[]位置0

1在xCoord[]位於位置0

1在yCoord[]位置0

據我了解,這涉及一些概念。 首先,我需要打開文件並閱讀。

  • 該文件需要讀取為逗號或\\ n並存儲值

  • 然后,它需要切換數組並讀取下一個逗號或\\ n並存儲值。

  • 然后,它需要切換數組並讀取下一個逗號或\\ n並存儲值。

  • 如果.read函數碰到新行,則需要轉到下一行

我的問題是我不知道如何告訴Python我要將特定值存儲在哪里以及應將它們存儲在哪個數組中。 我發現了一些有關使用split()函數的信息。 這能讓我告訴read()函數何時停止嗎?

現在我有這個:

def file_stuff():
with open('Offices.txt') as input_data:
    for line in input_data
        if line.strip() == ',', '\n':
            break
        elif 

我不知道該如何設置elif條件。

因為我將必須實現GUI來繪制節點圖形,所以作為結構更有意義嗎?

像這樣:

def file_stuff():
    nodes = []
    X = []
    Y = []
    with open('Offices.txt') as input_data:
        for line in input_data:
           n, x, y = line.split(',')
           nodes.append(n)
           X.append(int(x))
           Y.append(int(y))

這很簡單,因為它不檢查輸入文件的有效性,但是如果文件格式正確,它應該執行您想要的操作。 另一個問題是您的函數不會返回任何值,如果要進行進一步的操作,應添加以下內容:

   return (n, X, Y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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