在文本文件中搜索和排序

时间:2016-02-06 20:18:11

标签: python file python-3.x text

我对代码很新,我在阅读文本文件时遇到了问题。 对于我的代码,我需要让用户键入一个特定的名称代码,以便继续执行代码。但是,用户可以使用各种名称代码,我不知道如何编写代码,如果您键入任何代码,则可以继续。

例如,文本文件看起来像这样

john123,X,X,X

susan233,X,X,X

康纳,X,X,X

我需要做的是接受名称标签,尽管它是什么,并能够打印出来。所有名称标签都在一列中。

file = open("paintingjobs.txt","r")

details = file.readlines()


for line in details:
    estimatenum = input ("Please enter the estimate number.")
    if estimatenum = line.split

这是我的代码到目前为止,但我不知道该怎么做才能看到名称标签是否有效让用户继续。

2 个答案:

答案 0 :(得分:1)

这是另一种解决方案,没有pickle。我假设您的凭据每行存储一个。如果没有,你需要告诉我它们是如何分开的。

name = 'John'
code = '1234'

with open('file.txt', 'r') as file:
    possible_match = [line.replace(name, '') for line in file if name in line]

authenticated = False

for item in possible_match:
    if code in tmp: # Or, e.g. int(code) == int(tmp) 
        authenticated = True
        break

答案 1 :(得分:0)

您可以使用名为 try { final Object o = new Object(); Field[] declaredFields = o.getClass().getDeclaredFields(); for (Field f : declaredFields) { f.setAccessible(true); if(f.getType().equals(int.class) || f.getType().equals(Integer.class)) { f.setInt(o, -1); } if(f.getType().equals(long.class) || f.getType().equals(Long.class)) { f.setLong(o, -1L); } if(f.getType().equals(double.class) || f.getType().equals(Double.class)) { f.setDouble(o, -1.0D); } if(f.getType().equals(float.class) || f.getType().equals(Float.class)) { f.setFloat(o, -1.0F); } if(f.getType().equals(byte.class) || f.getType().equals(Byte.class)) { f.setByte(o, (byte)-1); } if(f.getType().equals(char.class) || f.getType().equals(Character.class)) { f.setChar(o, (char)-1); } if(f.getType().equals(String.class)) { f.set(o, "value"); } else { f.set(o, null); } } } catch (IllegalAccessException e) { e.printStackTrace(); } 的模块。这是一个Python 3.0内部库。在Python 2.0中,它被称为:pickle;两者中的其他一切都是一样的。

请注意,您执行此操作的方式并不安全!

cPickle

这会保存名为from pickle import dump credentials = { 'John': 1234, 'James': 4321, 'Julie': 6789 } dump(credentials, open("credentials.p", "wb")) 的文件。您可以按如下方式加载:

credentials.p

以下是一些测试:

from pickle import load

credentials = load(open("credentials.p", "rb"))

print(credentials)

这相当于:

test_name = 'John'
test_code = 1234

显示:print('Test: ', credentials[test_name] == test_code)

显示:{'John': 1234, 'James': 4321, 'Julie': 6789}

Test:  True

显示:test_code = 2343 print('Test:', credentials[test_name] == test_code)