2016-11-07 57 views
-1

我試過很多方法來輸出保存到文本文件,但它不適合我如何保存蟒蛇輸出到文本文件

工作,這是代碼

from optparse import OptionParser 
import os.path 
import re 

regex = re.compile(("([a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`" 
        "{|}~-]+)*(@|\sat\s)(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(\.|" 
        "\sdot\s))+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)")) 

def file_to_str(filename): 
    """Returns the contents of filename as a string.""" 
    with open(filename) as f: 
     return f.read().lower() # Case is lowered to prevent regex mismatches. 

def get_emails(s): 
    """Returns an iterator of matched emails found in string s.""" 
    # Removing lines that start with '//' because the regular expression 
    # mistakenly matches patterns like 'http://[email protected]' as '//[email protected]'. 
    return (email[0] for email in re.findall(regex, s) if not email[0].startswith('//')) 

if __name__ == '__main__': 
    parser = OptionParser(usage="Usage: python %prog [FILE]...") 
    # No options added yet. Add them here if you ever need them. 
    options, args = parser.parse_args() 

    if not args: 
     parser.print_usage() 
     exit(1) 



    for arg in args: 
     if os.path.isfile(arg): 
      for email in get_emails(file_to_str(arg)): 

       print email 

     else: 
      print '"{}" is not a file.'.format(arg) 
parser.print_usage() 

當您運行腳本

它將打印電子郵件在DOS屏幕

我想將它保存爲文本文件

+2

[正確的寫入Python文件的方式]可能的重複(http://stackoverflow.com/questions/6159900/correct-way-to-write-line-to-file-in-python) – JRodDynamite

+1

Where在你的代碼中你試圖寫入一個文件? – cdarke

+0

看起來你希望我們爲你寫一些代碼。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。展示這一努力的一個好方法是包含迄今爲止編寫的代碼,示例輸入(如果有),預期輸出以及實際獲得的輸出(控制檯輸出,回溯等)。您提供的細節越多,您可能會收到的答案就越多。檢查[FAQ](http://stackoverflow.com/tour)和[如何提問](http://stackoverflow.com/help/how-to-ask)。 –

回答

0

可以更換的b與你自己的代碼。

file = open(output_path, 'w') 
for arg in args: 
    if os.path.isfile(arg): 
     for email in get_emails(file_to_str(arg)): 
      file.write(email + '\n') 
    else: 
      print '"{}" is not a file.'.format(arg) 
file.close() 
0

你的代碼已經有一些打印語句(你應該使用一個記錄器,而不是),而是添加到代碼寫入到文件,爲什麼不

$ python myscript.py >> output.txt 

這會給你的完全相同的輸出而不添加代碼。

0

$ python your_script.py > path/to/output_file/file_name.txt

OR

$ python your_script.py >> path/to/output_file/file_name.txt

這會給你的打印語句到file_name.txt文件中給出的輸出。