isinstance没有输出任何东西 [英] isinstance not outputting anything
问题描述
使用 isinstance
时,我的代码不会输出任何内容。这在代码的末尾显示。我尝试输入 year 1
和 tla_2 = 1
,没有输出。我的意思是说错了吗我是否正确循环?
My code is not outputting anything when using isinstance
. This is shown at the end of the code. I tried inputting year 1
and tla_2=1
, and no output occurred. Is my isinstance statement wrong. Am I for looping incorrectly?
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))
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)
推荐答案
csv.writer
能够写任何数据(整数,字符串...)到 csv
。但是, csv.reader
不执行反向操作。
csv.writer
is able to write any data (integers, floats, strings...) to a csv
. But csv.reader
doesn't perform the inverse operation.
last_bus
是直接来自 csv.reader
iterator的数据。所以 是一个字符串。
last_bus
is a data directly coming from csv.reader
iterator. So it has to be a string.
所以,你的 isinstance
方法不能返回 True
。
So, your isinstance
method cannot return True
.
有几种方法来检查字符串是否是一个整数。我不会在这里解释,对于很多已经回答的问题来说,这是多余的,但请查看这个Q& A(与其他问答相关的链接)来实现您的选择之一:如何检查字符串是否具有在Python中的数值?
There are several methods to check if a string is actually an integer. I won't explain them here, it would be redundant with a lot of already answered questions, but check this Q&A (which has links to other Q&As) to implement one of your choice: How can I check if a string has a numeric value in it in Python?
一旦确定字符串持有一个整数,只需执行 int(last_bus)
转换为整数。
Once you have determined that the string holds an integer, just do int(last_bus)
to convert to integer.
这篇关于isinstance没有输出任何东西的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!