2017-04-25 194 views
0

我正在編寫一個深度和寬度的首先搜索Python中的頂點列表。我想讀一個txt文件,看起來像以下:Python在讀取.txt文檔時增加了額外的 n字符和空格

50 
    60 
    45 
    12 
    68 
    21 
    13 
    24 

我的代碼如下:

def readFile(x): 
    fin = open(x, 'r') 
    readline = fin.read() 
    x,y = [], [] 

    for line in readline: 
     row = line.split() 
     x.append(row[0]) 
     print(x) 
     y.append(row[1]) 

不幸的是,當代碼讀取TXT文件成Python這種只讀取6進入程序並終止說索引超出了y的範圍。在我的.txt文件中,除了每組點之外,沒有空格或\ n字符。

有關爲什麼要添加所有這些額外的空白和\ n字符的任何想法?

邊注:當我使用sys.stdout.write(line)輸出正是我正在尋找,但我不能索引。

with open(x) as fin: 
     for line in fin: 
      sys.stdout.write(line) 

任何幫助將不勝感激!

+0

你可以把你的示例文本文件在代碼塊嗎? –

回答

0

因爲你沒有足夠的答案,這裏是另一個!

def readFile(x): 
    with open(x, 'r') as fin: 
     x, y = [], [] 
     for line in fin: 
      row = line.rstrip() 
      x.append(row[0]) 
      print(x) 
      y.append(row[1]) 
0
def readFile(x): 
    fin = open(x, 'r') 
    readline = fin.readlines() 
    x,y = [], [] 
    for line in readline[::2]: #to skip the extra line [before editing question] 
     x.append(line[0]) 
     y.append(line[1]) 

編輯: 你必須使用readlines方法()或閱讀()分()都將讀取的內容到內存]或者你可以遍歷對象[這將在僅容納一行時間]

你必須使用帶材以除去多餘的白字符不能拆分

def readFile(x): 
    with open(x, 'r') as fin: 
     x, y = [], [] 
     for line in fin: 
      row = line.strip() 
      x.append(row[0]) 
      y.append(row[1]) 
     print(x,y) 

readFile('a.txt')   

輸出: [ '5', '6', '4', '1', '6',' 2','1','2'] ['0','0','5','2','8','1','3','4']

+0

雖然這段代碼片段是受歡迎的,並且可能會提供一些幫助,但它會[如果它包含解釋](/ meta.stackexchange.com/q/114762)*如何解決該問題將會[大大改善。沒有這些,你的答案就沒有什麼教育價值了 - 記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –

0

You are close,remove readline = fin.read();這是閱讀第一個'6'。

然後,焊割for line in readline:for line in fin:

最後,似乎你的文件有空白行,所以你必須跳過它們:

line = line.strip() 
if line != '': 
    row = line 
    x.append(row[0]) 
    print(x) 
    y.append(row[1]) 
+0

這很適合從文件中獲取第一組頂點,但程序終止並返回x = ['50'] y = []。我正在尋找x = [5] y = [0],但是對於整個頂點列表而不僅僅是第一行。謝謝! –

+0

如果我在我的文本文件中的頂點之間添加空格,這將起作用,所以我將確保在添加頂點時,它們在x和y座標之間有空格!謝謝! –

+0

你不需要。由於你原來的帖子,我以爲你的文件有空行。 –

相關問題