2017-08-30 7 views
0

isinstanceを使用しているときに私のコードが何も出力していません。これはコードの最後に表示されます。 year 1tla_2=1を入力しようとしましたが、出力はありませんでした。私のisinstanceステートメントは間違っていますか?私は間違ってループしていますか?は何も出力していません

output = 'From Bus #: {}\tTo Bus #: {}\tTo Bus #: {}\t Area Station: {}\t VMIN: {} pu\tVMAX: {} pu\t' 
print(output.format(from_, to,name2, min_value, max_value,last_bus)) 

Excel Sheet

from __future__ import print_function 
import os.path 
import win32com.client 

#--------------------------------------------------------------------------------------------------------------------- 
xlApp = win32com.client.DispatchEx('Excel.Application') # Running Excel 
xlsPath = os.path.expanduser('C:\Users\RoszkowskiM\Desktop\UPDATED_LOAD_FORECAST_4.xlsm')# Reading xlsm file 
wb = xlApp.Workbooks.Open(Filename=xlsPath) # Opening file 
xlApp.Run('csvfile2')# Running macro---- csvfile2 is the macro name. It is under the "csv" module in the VBA editor 
wb.Save() 
xlApp.Quit() 
#--------------------------------------------------------------------------------------------------------------------- 
# WHEN RUNNING THE PROGRAM, MAKE SURE THE CSV FILE IS NOT OPEN. 

# THIS WILL PRODUCE AN ERROR WITH READING AND RUNNING THE MACRO. 

# THE EXCEL WORKBOOK CAN BE OPEN WHEN RUNNING THE PROGRAM 


import os, sys 
#-------------------------------------------------------------------------- 
#PSSE_LOCATION = r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN" #Locating PSSE 
#sys.path.append(PSSE_LOCATION) 
#os.environ['PATH'] = os.environ['PATH'] + ';' + PSSE_LOCATION 
#-------------------------------------------------------------------------- 


#---------------------------------------------------------------------------------------------------------------- 
#import psspy 
#import redirect 
import csv 
#psspy.throwPsseExceptions = True 
from Tkinter import * # File Dialog 
import tkFileDialog 
import tkSimpleDialog 
import tkMessageBox 
import Tkinter as tk 



#Pop up window for picking file on PSSE 
#root = tk.Tk() 
#root.withdraw() 
#tkMessageBox.showinfo("Welcome", "Please select case: ") 
#root.fileName= tkFileDialog.askopenfilename(filetypes = (("PSSE CASES", "*.sav"), ("PSSE CASES", "*.raw*"))) 
#STUDY_CASE=root.fileName 



#psspy.psseinit(10000) # Intialize PSSE 
#psspy.case(STUDY_CASE) # Upload Case 


LOAD_GEN_DATAFILE = 'C:\Users\RM\Desktop\Data_2017.csv' # CSV File to Read 

# read the entire CSV into Python. 
# CSV has columns starting with Year,busnum,busname,scaled_power,tla,location,empty,year_link,from_,to,digit,min_value,max_value,last_bus 
#------------------------------------------------------------------------------- 
# read the entire CSV into Python. 
# CSV has columns starting with Year,busnum,busname,scaled_power,tla,location 
data = list(csv.reader(open(LOAD_GEN_DATAFILE))) 
mydict = {} 
for row in data: 
    Year,busnum,busname,scaled_power,tla,data_location,empty,year_link,from_,to,digit,name2,tla_2,min_value,max_value,last_bus = row[0:16] 


    #If this is a year not seen before, add it to the dictionary 
    if Year not in mydict: 
     mydict[Year] = {} 

    busses_in_year = mydict[Year] 
    if data_location not in busses_in_year: 
     busses_in_year[data_location] = [] 


    #Add the bus to the list of busses that stop at this location 
    busses_in_year[data_location].append((busnum,busname,scaled_power)) 
#------------------------------------------------------------------------------- 



#------------------------------------------------------------------------------------------------------------------------------------- 
#User Input Statement 

year = raw_input("Please Select Year of Study: ") 

print("\n") 

location=raw_input(" \n The list above show the TLA Pockets as well as the ID numbers assigned to them()\n\n Please enter the ID #: ") 
#psspy.prompt_output(islct = 6) 
print("\n") 
Year=year 
data_location=location 
#--------------------------------------------------------------------------------------------------------------------------------------- 

#-------------------------------------------------LOAD FORECASTS-------------------------------------------------------------------- 
if Year in mydict and data_location in mydict[Year]: 
    busses_in_year = mydict[Year] 
    #print("Here are all the busses at that location for that year and the new LOAD TOTAL: ") 
    #print("\n") 

    #Busnum, busname,scaled_power read from excel sheet matching year and location 

    for busnum,busname,scaled_power in busses_in_year[data_location]: 
     scaled_power= float(scaled_power) 
     busnum = int(busnum) 
     output='Bus #: {}\t Area Station: {}\t New Load Total: {} MW\t' 
     print(output.format(busnum,busname,scaled_power)) 
     #psspy.bsys(1,0,[0.0,0.0],0,[],1,[busnum],0,[],0,[]) 
     #psspy.scal_2(1,0,1,[0,0,0,0,0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0]) 
     #psspy.scal_2(0,1,2,[0,1,0,1,0],[scaled_power,0.0,0,-.0,0.0,-.0,0]) 


else: 
    exit 
#-------------------------------------------------LOAD FORECASTS-------------------------------------------------------------------- 

#------------------------------------------------VOLTAGE ENVLOPES--------------------------------------------------------------------------------------------------------------------------------- 

for row in data: 
    year_link, from_,to,digit,name2,tla_2,min_value,max_value,last_bus = row[7:16] 
    output = 'From Bus #: {}\tTo Bus #: {}\t Area Station: {}\t VMIN: {} pu\tVMAX: {} pu\t' 
    if year_link == year and tla_2==location: 
     from_=int(from_) 
     to=int(to) 
     min_value=float(min_value) 
     max_value=float(max_value) 
     digit=int(digit) 

     print(output.format(from_, to,name2, min_value, max_value)) 
     #_c=psspy.getdefaultchar() 
     #_i=psspy.getdefaultint() 
     #_f=psspy.getdefaultreal() 
     #psspy.two_winding_chng_4(from_,to,'%d'% digit,[_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f, max_value, min_value,_f,_f,_f],[]) 
    else: 
     exit 
for row in data: 
    year_link, from_,to,digit,name2,tla_2,min_value,max_value,last_bus = row[7:16] 
    if year_link==year and tla_2==location and isinstance(last_bus, int): 
     output = 'From Bus #: {}\tTo Bus #: {}\tLast Bus #: {}\t Area Station: {}\t VMIN: {} pu\tVMAX: {} pu\t' 
     print(output.format(from_, to,name2, min_value, max_value,last_bus)) 
     min_value=float(min_value) 
     max_value=float(max_value) 
     #psspy.three_wnd_winding_data_3(from_,to,last_bus,r"""1""",1,[_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f, max_value, min_value,_f,_f,_f]) 
    else: 
     exit 

    #------------------------------------------------VOLTAGE ENVLOPES----------------------------------------------------------------------------------------------------------------------------------   

os.remove(LOAD_GEN_DATAFILE) 
+0

python replの関連する行を試しましたか? – ivo

+0

何がわかりません –

+1

ようこそ。エラーを示すために最小限のサンプルを提供し、期待する結果について教えてください。 – yacc

答えて

1

csv.writercsvに任意のデータ(整数、浮動小数点数、文字列を...)書き込むことができます。しかし、csv.readerは逆の操作を行いません。

last_busは、csv.readerイテレータから直接送信されるデータです。だからにはが文字列になる。

したがって、isinstanceメソッドはTrueを返すことはできません。

文字列が実際に整数かどうかを確認する方法はいくつかあります。 How can I check if a string has a numeric value in it in Python?

をあなたたら:私はそれが既に質問に答えますが、お好みの1を実装するために(他のQ &ようにリンクしている)このQ & Aをご確認の多い冗長になる、それらをここで説明しています文字列が整数を保持すると判断した場合は、int(last_bus)を整数に変換するだけです。

+0

ですが、文字列ではありません。その整数です。なぜデータを書きたいのですか?私はデータを読み取ろうとしています –

+1

それは_is_文字列です。それは整数に変換できる値を持っています。 –

+0

どうすればいいですか、変数として宣言して、どうすればいいですか? –

0

だから私はあなたの言ったことをしました。正しく出力されていますが、psspyファンクションに出力されません。

for row in data: 
    year_link, from_,to,digit,name2,tla_2,min_value,max_value,last_bus = row[7:16] 
    if isinstance(last_bus, str) and year_link==year and tla_2==location and last_bus.isdigit() is True: 
     min_value=float(min_value) 
     max_value=float(max_value) 
     last_bus=int(last_bus) 
     output = 'From Bus #: {}\tTo Bus #: {}\tLast Bus #: {}\t Area Station: {}\t VMIN: {} pu\tVMAX: {} pu\t' 
     print(output.format(from_, to,last_bus,name2, min_value, max_value)) 
     print("\n") 
     psspy.three_wnd_winding_data_3(from_,to,last_bus=int(last_bus),r"""1""",1,[_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f, max_value, min_value,_f,_f,_f]) 
    else: 
     exit 
+0

@ Jean-FrançoisFabre –

関連する問題