打印函数deos在python中不起作用

时间:2017-10-01 03:07:47

标签: python

我一直试图找到一些关键字列在另一个文件中的文件,如果找到该关键字,则打印该关键字。这是我的代码,python不会产生任何错误,但我也没有看到任何打印。 (我很确定关键字存在于我使用find函数的文件中)

keyword_array = []
with open('localDrive\\C0577785-MeshID.txt') as my_keywordfile:    
        for keyword in my_keywordfile.readlines():
            keyword_array.append(keyword.lower())
            # print(keyword)

with open('localdrive\\file') as my_dataset:
    for line in my_dataset.readlines():
        for keywords in keyword_array:        
            if line.lower().find(keywords) >= 0:                
                print("keywords:", keywords,"\n")
                break     

我错过了什么吗? 谢谢

2 个答案:

答案 0 :(得分:1)

当您从文件中读取一行时,它通常在该行的末尾有一个换行符...

  • '\ n'(Linux)或
  • '\ r \ n'(Windows)

因此,在将行添加到列表之前,应使用def loadBin(file: String) = { def readUntil(inputStream: DataInputStream, term: Char, maxLength: Int = 1024 * 8): String = { var char: Char = inputStream.readByte().toChar val str = new StringBuilder while (!char.equals(term)) { str.append(char) assert(str.size < maxLength) char = inputStream.readByte().toChar } str.toString } val inputStream: DataInputStream = new DataInputStream(new GZIPInputStream(new FileInputStream(file))) try { val header = readUntil(inputStream, '\n') val (records, dimensions) = header.split(" ") match { case Array(records, dimensions) => (records.toInt, dimensions.toInt) } new Word2VecModel((0 until records).toArray.map(recordIndex => { readUntil(inputStream, ' ') -> (0 until dimensions).map(dimensionIndex => { java.lang.Float.intBitsToFloat(java.lang.Integer.reverseBytes(inputStream.readInt())) }).toArray }).toMap) } finally { inputStream.close() } } 函数删除任何换行符。

希望能帮到你

答案 1 :(得分:0)

归功于@jasonharper 从关键字文件中读取的行包括尾随换行符;因此,除非关键字是最后一行,否则它们将不会出现在您的数据文件中。使用keyword_array.append(keyword.strip()。lower())“

构建关键字列表