2017-04-05 27 views
1

私の印刷ステートメントの出力をコンソールで出力するのではなく、出力ファイルに書き込もうとしています。私のプリントステートメントに書かれているコードに影響を与えずに簡単な方法がありますか?反復的な出力をPythonのファイルに書き込む

コード: -

outputfile = open('output1.txt','w')  
outputfile.write("Order_id Order_date User_id Avg_Item_Price Start_page_url  Error_msg") 


for i in inputm[1:]:  
    if '::' in i[0] or ':' not in i[0]:   
     print('\n',"This is not a valid order record.") 
    else: 
     print('\n',i[0].split(':')[0] 
           ,str(datetime.strptime(i[0].split(':')[1],'%Y%m%d'))[:10] 
           ,i[1] 
           ,round(sum(float(v) if v else 0.0 for v in i[2:6])/4,2) 
           ,i[6] if Counter(i[6][0:23]) == Counter("http://www.google.com") else '        ' 
           ,'Valid URL' if Counter(i[6][0:23]) == Counter("http://www.google.com") else 'Invalid URL'     
         ) 

outputfile.close() 
+0

'print()'を 'outputfile.write()'に変更しても機能しないのですか? – Dadep

+0

いいえ、それは働いていません....なぜなら、印刷で使用されている内部関数は印刷固有のものだからです。 – Teja

答えて

1

をファイルに書き込む前に、あなたの文字列をフォーマットする必要があります!あなたのコードのいずれかを変更したくない場合は、代わりにファイルに追加する印刷機能を変更することができ

outputfile = open('output1.txt','w')  


outputfile.write("Order_id Order_date User_id Avg_Item_Price Start_page_url  Error_msg") 


for i in inputm[1:]:  
    if '::' in i[0] or ':' not in i[0]:   
     outputfile.write('\n %s'%("This is not a valid order record.")) 
    else: 
     outputfile.write('\n%s %s %s %f %s %s'%(i[0].split(':')[0] 
           ,str(datetime.strptime(i[0].split(':')[1],'%Y%m%d'))[:10] 
           ,str(i[1]) 
           ,round(sum(float(v) if v else 0.0 for v in i[2:6])/4,2) 
           ,i[6] if Counter(i[6][0:23]) == Counter("http://www.google.com") else '        ' 
           ,'Valid URL' if Counter(i[6][0:23]) == Counter("http://www.google.com") else 'Invalid URL')) 

outputfile.close() 
0

ある

output file.write('\n %s'%("This is not a valid order record.") 

print('\n,',"This is not a valid order record.") 

def print(*args): 
    with open("output1.txt", "a") as outputfile: 
     outputfile.write(" ".join(str(arg) for arg in args) + "\n") 

def write_to_file(*args): 
    with open("output1.txt", "a") as outputfile: 
     outputfile.write(" ".join(str(arg) for arg in args) + "\n") 

write_to_file("Order_id Order_date User_id Avg_Item_Price Start_page_url  Error_msg") 

for i in inputm[1:]:  
    if '::' in i[0] or ':' not in i[0]:   
     write_to_file('\n',"This is not a valid order record.") 
    else: 
     write_to_file('\n',i[0].split(':')[0] 
           ,str(datetime.strptime(i[0].split(':')[1],'%Y%m%d'))[:10] 
           ,i[1] 
           ,round(sum(float(v) if v else 0.0 for v in i[2:6])/4,2) 
           ,i[6] if Counter(i[6][0:23]) == Counter("http://www.google.com") else '        ' 
           ,'Valid URL' if Counter(i[6][0:23]) == Counter("http://www.google.com") else 'Invalid URL'     
         ) 

outputfile.close() 
関連する問題