2017-04-25 41 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

你不需要。由于你原来的帖子,我以为你的文件有空行。 –

相关问题