isinstance不输出任何内容

2024-04-18 22:13:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码在使用isinstance时没有输出任何内容。代码末尾显示了这一点。我尝试输入year 1tla_2=1,但没有输出。我的陈述错了吗。我是因为循环错误吗?你知道吗

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)

Tags: thetoinfromimportdatavaluelocation
2条回答

csv.writer能够将任何数据(整数、浮点、字符串…)写入csv。但是csv.reader不执行逆运算。你知道吗

last_bus是直接来自csv.reader迭代器的数据。所以它必须是一根弦。你知道吗

因此,您的isinstance方法不能返回True。你知道吗

有几种方法可以检查字符串是否为整数。我不会在这里解释这些问题,有很多已经回答的问题是多余的,但是请检查这个Q&a(它有到其他Q&a的链接)来实现您的选择:How can I check if a string has a numeric value in it in Python?

一旦确定字符串包含整数,只需执行int(last_bus)即可转换为整数。你知道吗

好吧,我照你说的做了。它输出正确,但没有输出到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

相关问题 更多 >