2016-09-20 18 views
0

こんにちは私はPythonの初心者ですが、ファイル操作に精通していません。ロギング用のPythonスクリプトを作成しています。以下は私のコードスニペットです:Pythonでタイムスタンプを使用したフォルダの作成

infile = open('/home/nitish/profiles/Site_info','r') 
lines = infile.readlines() 
folder_output =  '/home/nitish/profiles/output/%s'%datetime.now().strftime('%Y-%m-%d-%H:%M:%S') 
folder = open(folder_output,"w") 
for index in range(len(lines)): 
    URL = lines[index] 

    cmd = "curl -L " +URL 

    curl = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE) 

    file_data = curl.stdout.read() 
    print file_data 

    filename = '/home/nitish/profiles/output/log-%s.html'%datetime.now().strftime('%Y-%m-%d-%H:%M:%S') 
    output = open(filename,"w") 
    output.write(file_data) 
output.close() 
folder.close() 
infile.close() 

私はこれが正しいかどうかわかりません。私は、スクリプトが実行されるたびにtimestampで新しいフォルダを作成し、forループからのすべての出力をタイムスタンプ付きのフォルダに配置したいと考えています。あなたがファイルではないフォルダを作成しようとしているとして、事前にあなたの助けを

おかげであなたはそれが動作しないように、すべてのURLに改行を末尾いる

答えて

0

は、あなたもあり、過去folder = open(folder_output,"w")を取得することはありませんサブプロセスの必要はありません。まだrequests

を使用 import urllibと `urllib.urlopen以上を使用し、python2について

from os import mkdir 
import urllib.request 
from datetime import datetime 

now = datetime.now 

new_folder = '/home/nitish/profiles/output/{}'.format(now().strftime('%Y-%m-%d-%H:%M:%S')) 
# actually make the folder 
mkdir(new_folder) 

# now open the urls file and strip the newlines 
with open('/home/nitish/profiles/Site_info') as f: 
    for url in map(str.strip, f): 
     # open a new file for each request and write to new folder 
     with open("{}/log-{}.html".format(new_folder, now().strftime('%Y-%m-%d-%H:%M:%S')), "w") as out: 
      out.write(urllib.request.urlopen(url).read()) 

を:あなたは、標準のlibの機能を使用してそれをすべて行うことができます

関連する問題