读取文件条空白

时间:2014-10-06 14:36:44

标签: python

通过CorePytho工作 我可以使用w / eachLine下面的代码打印文件, 如果我删除逗号它是双倍空格。

我试图用逗号删除whiteaspace - 没有找到答案,因为下面的代码只打印.txt的最后一行而不是前面的行。

#! /usr/bin/env python

'readTextFile.py == read and display a text file'

#get the filename
fname = raw_input('Enter the filename: ')
print

#attempt to open the file for reading
try:
    fobj = open(fname, 'r')
except IOError, e:
    print "*** file open error:", e
else:
    #display contents to the screen
    for eachLine in fobj:
        x = [fname.rstrip('\n') for eachLine in fobj]
        print eachLine,
    fobj.close()

1 个答案:

答案 0 :(得分:1)

您正在循环读取循环中的文件 。 Python文件对象具有“读取位置”&#39 ;;每次迭代读取位置移动到下一行的文件对象时。

因此,在for eachLine in fobj循环内,您将使用列表解析重新遍历fobj

实际上,您只是阅读第一行,然后在x中存储文件的 rest (没有换行符)。在Python 2中,列表解析循环中重用eachLine变量与外部for循环中使用的变量相同,所以最终它仍然绑定到你文件中的最后一行。 (在Python 3中,列表推导有自己的范围,因此列表推导中的eachLine变量是独立的,就像另一个函数中的本地一样。)

如果您只想从当前行中删除换行符,请执行以下操作:

eachLine = eachLine.rstrip('\n')

并在for循环的后续迭代中保留要处理的文件的其余部分。