【问题标题】:in python; convert list of files to file like object在蟒蛇中;将文件列表转换为类似对象的文件
【发布时间】:2010-09-01 18:26:38
【问题描述】:

呃,所以我在处理解析器之类的东西,我从一个处理文件的东西转到另一个。

我的代码第一部分的输出是一个字符串列表;我将每个字符串视为文本文件中的一行。

代码的第二部分需要一个文件类型作为输入。

所以我的问题是,是否有一种适当的 Pythonic 方法将字符串列表转换为像对象这样的文件?

我可以将我的字符串列表写入一个文件,然后重新打开该文件,它会正常工作,但如果没有必要,必须写入磁盘似乎有点愚蠢。

我相信第二部分只需要在文件上调用'read()',就像对象一样,所以我还可以定义一个新类,将 read 作为方法,它返回一个长字符串,它是所有的行字符串。

谢谢, -尼克

【问题讨论】:

    标签: python text


    【解决方案1】:

    StringIO 实现(几乎)所有 stdio 方法。示例:

    >>> import StringIO
    >>> StringIO.StringIO("hello").read()
    'hello'
    

    cStringIO 速度更快。

    要转换您的字符串列表,只需join 他们:

    >>> list_of_strings = ["hello", "line two"]
    >>> handle = StringIO.StringIO('\n'.join(list_of_strings))
    >>> handle.read()
    'hello\nline two'
    

    【讨论】:

    • 哦,太好了,就这样。我也很努力地做到了,这也奏效了,StringIO 看起来更好。类 linesConverter: def __init__(self, input): self.buff = "" for line in input: self.buff += line def read(self, n): a = self.buff[0:n-1] self. buff = self.buff[n:-1] 返回一个
    猜你喜欢
    • 2022-06-17
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2016-11-07
    相关资源
    最近更新 更多