簡體   English   中英

打印行搜索的輸出

[英]Printing the output of a Line search

一般而言,我是編程新手,嘗試獲取此命令以將其輸出打印到.txt文檔時遇到困難。 最后,我的目標是能夠將變量“序列”更改為一個變量,在該變量中我可以將其集成到自定義的easygui中以進行多個輸入和返回,但這是以后的故事。 為了測試和完成當前項目,我將手動更改術語。

我已經成功地獲得了另一個程序,可以將其輸出發送到.txt,但這很難。 我不知道我是否一直在尋找簡單的東西,但是我在地面上的時間比我想要的更多。

當它搜索行時,它將在我想要的文件中打印字段,但是當它寫時,它會找到文件的最后一行,然后將其放在.txt中作為輸出。 我知道這個問題,但是我仍然無法解決該問題,這主要是由於我對我認為的語言缺乏了解。

我在Windows上使用Sublime Text 2

def main():
    import os

    filelist = list()

    filed = open('out.txt', 'w')
    searchfile = open("asdf.csv")

    for lines in searchfile:
        if "Sequence" in lines:
         print lines

    filelist.append(lines)

    TheString = " ".join(filelist)

    searchfile.close()

    filed.write(TheString)

    filed.close()

main()

聽起來好像您希望將要打印的行收集在變量“文件列表”中,然后將在.write()調用中將其打印到文件中。 只有縮進的不同(在Python中很重要)可以防止這種情況的發生:

def main():
    import os

    filelist = list()

    filed = open('out.txt', 'w')
    searchfile = open("asdf.csv")

    for lines in searchfile:
        if "Sequence" in lines:
           print lines
           filelist.append(lines)

    TheString = " ".join(filelist)

    searchfile.close()

    filed.write(TheString)

    filed.close()

main()

           filelist.append(lines)

縮進程度與

           print lines

告訴Python它們在同一塊中,第二條語句也屬於if語句的“ then”子句。

您的問題是您沒有在循環內追加,結果是您僅追加了最后一行,請執行以下操作:

for lines in searchfile:
    if "Sequence" in lines:
       print lines
       filelist.append(lines)

獎勵 :這是您執行所需操作的“ pythonic ”方法:

def main():
    with open('asdf.csv', 'r') as src, open('out.txt', 'w') as dest:
        dest.writelines(line for line in src if 'sequence' in line)
def main():

    seq = "Sequence"

    record = file("out.txt", "w")
    search = file("in.csv", "r")

    output = list()

    for line in search:
        if seq in line: output.append(line)

    search.close()

    record.write(" ".join(output))
    record.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM