【问题标题】:How to sort out integers and strings from a textfile?如何从文本文件中整理出整数和字符串?
【发布时间】:2014-11-16 09:04:31
【问题描述】:

所以我正在尝试创建一个程序,它可以读取文本文件并以某种排序方式输出字符串和整数。

我想打印出字符串所在的行,并创建包含文本文件中所有整数的列表。 (进一步使用整数求最小值、最大值、中值等)

我已经尝试过了,不幸的是完全被卡住了。

def readfile(file):
    try:
        f = open(file, 'r')
        fil = f.readlines()
        f.close()
        return fil
    except IOError:
        print('fil finns inte')
        return None

def rader(rowlist):
    k=rowlist
    l=[]
    try:
        for i in k:
            l.append(int(i.strip()))
            return l
    except:
        print("sds")

所以这段代码显然还没有完成,而且目前正在使用 doctest 运行。我被困在我想将整数排序到列表和字符串与行号一起打印出来的部分。

所以显然我想要一个遍历文档列表的循环,当它遇到一个整数时,将它附加到一个列表中,当它遇到一个字符串时,停止,只是到例外情况或类似的东西,并将字符串连同行号 (i) 一起打印出来。

如何创建它?我不是在寻找一个非常复杂的程序,而是一个简单的循环,我只是无法在脑海中看到如何编码。

【问题讨论】:

    标签: python list sorting


    【解决方案1】:

    请看一个例​​子:

    def get_integer_or_none(text):
        '''
        Returns integer from text or None if text is not an integer.
        '''
        try:
            return int(text)
        except ValueError:
            return None
    
    for text in ('1', 'some text', '2 not an integer', '-1000'):
        integer_value = get_integer_or_none(text)
        if integer_value is not None:
            print('This text "{}" is an integer ({})'.format(text, integer_value))
        else:
            print('This text "{}" is not an integer'.format(text))
    

    【讨论】:

    • 谢谢,虽然我不太明白第二部分。您愿意详细说明吗?
    • 第二部分只是 4 个字符串的示例:'1'、'some text'、'2 not an integer'、'-1000'。它对每个字符串使用函数 get_interger_or_none() 并打印结果是否为整数。
    猜你喜欢
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2020-02-10
    相关资源
    最近更新 更多