Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要从文本文件(python)中排序字符串_Python - Fatal编程技术网

需要从文本文件(python)中排序字符串

需要从文本文件(python)中排序字符串,python,Python,我制作了一个程序,在我将社保号码写入程序(如果号码有效)的同时,查找社保号码并将其放入文本文件中。或者如果数字太长,则使用类似“数字太长”的注释 现在我想能够分别“呼叫他们”,但我不知道如何区分文本文件中的有效号码和无效号码 def showALLnumbers(): print ("all numbers:") textfile = open("textfile.txt", "r") data = textfile.read() print (data)

我制作了一个程序,在我将社保号码写入程序(如果号码有效)的同时,查找社保号码并将其放入文本文件中。或者如果数字太长,则使用类似“数字太长”的注释

现在我想能够分别“呼叫他们”,但我不知道如何区分文本文件中的有效号码和无效号码

def showALLnumbers():
    print ("all numbers:")
    textfile = open("textfile.txt", "r")
    data = textfile.read()
    print (data)
    textfile.close
这就是我对他们所有人的要求,但我如何才能得到下面有评论的人,以及我如何得到没有这些评论的人

if socialsecuritynumber.isdigit()== False:
    print (number, "\t", "not only digits")
    textfile.write("\n" + socialsecuritynumber + "\t" + "not only digits" )
    return False
很抱歉,文字混乱,但将感谢您的帮助

编辑-这是它在文本文件中的外观

  • 199205155700位数过多
  • 920511570
  • 9205155700
  • 19920511570不正确的表格 这就是文本文件的外观,但是没有1,2,3,4

  • 我不太确定你的问题到底是什么。你的意思是你有一批预先评论过的社会保险号码,你需要挑选出有评论的号码吗?如果是这样的话,可以这样说:

    comment_list = []
    normal_list = []
    for line in file:
        if len(line) > 9:
            comment_list.append(line)
    else:
        normal_list.append(line)
    

    作为将来的参考,您真的应该以更好的格式保存代码——这是一种很好的格式,Python对它有直观的支持。能够在Excel中加载和更改内容非常重要

    不管怎样,让我们用你现在拥有的。我们要做的是遍历文件的每一行,并通过将行拆分为空格字符来检查是否有注释。CSV的工作原理基本相同,只是它强制要求行拆分的方式,以便结构化,并且您不会意外地在无意中拆分某些内容。注意,如果我们按空格分割,如果我们有一个类似“1234 5678”的条目,它将无法正确解析

    在代码上。从您的问题来看,听起来您不想保存任何数据结构,如果文件变得非常大,可能会遇到性能问题--我想我们离那个规模还远,所以没关系

    def showGoodNumbers():
        print ("all good numbers:")
        textfile = open("textfile.txt", "r")
        for line in textfile.readlines():
            split_line = line.split(' ')
            if len(split_line) == 1:
                print(split_line) # this will print as a tuple
        textfile.close
    
    def showBadNumbers():
        print ("all bad numbers:")
        textfile = open("textfile.txt", "r")
        for line in textfile.readlines():
            split_line = line.split(' ')
            if len(split_line) > 1:
                print(split_line) # this will print as a tuple
        textfile.close
    
    您还可以将它们组合到一个调用中,创建两个具有getter的列表:

    good = []
    bad = []
    
    def getNumbers():
        textfile = open("textfile.txt", "r")
        for line in textfile.readlines():
            split_line = line.split(' ')
            if len(split_line) > 1:
                good.append(line)
            else:
                bad.append(line)
        textfile.close
    
    def getBadNumbers():
        print("Getting bad numbers")
        print("\n".join(bad))
    
    def getGoodNumbers():
        print("Getting good numbers")
        print("\n".join(good))
    

    你能展示一下你的文件是什么样子吗?请更新你的问题,包括:)我想我现在设法添加了它^^^嗯,我的程序正在把我添加到它的所有数字放在我计算机上的文本文件中,如果它是一个未经验证的数字,或者只是把它放在我的文本文件的空行中。我想做的是把没有注释的数字和有注释的数字分开,即使它们在同一个文本文档中。如果你每行有一个数字,上面的程序可以工作,如下所示:
    859234123\n385869232 Comment Comment\n
    。如果不是的话,那你有什么结构?好的,我来看看!嗯耶,那其实很有帮助!!正如你所说,当数字中有空格时会有点混乱,但有没有办法绕过这个问题?我想我可以添加另一个空格,并将其拆分为“”(两个空格),而不是一个?老实说,最好的办法是将文本文件格式转换为CSV格式;你可以按你想要的任何字符分割,但这正进入“黑客”领域,它仍然有同样的问题(如果一行没有它怎么办?如果你有拼写错误怎么办?)。使用CSV(或Python可以读取的任何其他有组织的文件格式)将有助于确保您的数据始终按照您希望的方式进行分离!