从txt

时间:2016-09-04 14:38:32

标签: python database error-handling serial-port

我遇到以下问题:

f=open('config.txt')
lines=f.readlines()
print(lines[1])
print(lines[3])
print(lines[5])
print(lines[7])
print(lines[9])
print(lines[11])

#Import and define
import serial
import time
time.sleep(5)

#Settings
Port = lines[1]
TargetMaxVoltage = float(lines[3])
TargetStartVoltage = float(lines[5])
TargetIntervalVoltage = float(lines[7])
DelayTime = float(lines[9])
LogInterval = float(lines[11])
CV = True

ser = serial.Serial(Port, 9600)
TargetStartVoltageLock = TargetStartVoltage


#Starting Settings
ser.write(b'>Start\r\n')
ser.write(b'>VoSet 0.5\r\n')

time.sleep(1)

ser.write(b'>expMode 1\r\n')
ser.write(b'>runTime 1000000000\r\n')
ser.write(b'>stDly 1000000000\r\n')
ser.write(b'>IoSet 1\r\n')
ser.write(b'>Imax 50\r\n')
ser.write(b'>Imin 1\r\n')
ser.write(b'>FarEfc 1\r\n')
ser.write(b'>MolMax 9999\r\n')

LogTimeInterval = ">logIntv "+str(format(LogInterval, '.4f'))+"\r\n"
ser.write(LogTimeInterval.encode('utf-8'))

time.sleep(5)


#Running Method None CV Screening
while (TargetStartVoltage != TargetMaxVoltage and CV == False):
    DataSend = ">VoSet "+str(format(TargetStartVoltage, '.2f'))+"\r\n"
    print (DataSend)
    ser.write(DataSend.encode('utf-8'))
    TargetStartVoltage += TargetIntervalVoltage
    time.sleep(DelayTime)


#Running Method CV Screening
CVComplete = False
while (TargetStartVoltage <= TargetMaxVoltage and CV == True and CVComplete     != True):
    DataSend = ">VoSet "+str(format(TargetStartVoltage, '.2f'))+"\r\n"
    print (DataSend)
    ser.write(DataSend.encode('utf-8'))
    TargetStartVoltage += TargetIntervalVoltage
    time.sleep(DelayTime)
 else:
    TargetStartVoltage -= 2*TargetIntervalVoltage
    while(TargetStartVoltageLock <= TargetStartVoltage and CV == True and CVComplete != True):
        DataSend = ">VoSet "+str(format(TargetStartVoltage, '.2f'))+"\r\n"
        print (DataSend)
        ser.write(DataSend.encode('utf-8'))
        TargetStartVoltage -= TargetIntervalVoltage
        time.sleep(DelayTime)
    else:
        CVComplete = True

    ser.close()

我收到以下错误消息:

  

Traceback(最近一次调用最后一次):文件   &#34; C:\ Users \ Mikkel \ Desktop \ Python Scripts \ CV_and_Screeningv100.py&#34;,line   24,在       ser = serial.Serial(Port,9600)File&#34; C:\ Users \ Mikkel \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ serial \ serialwin32.py&#34;,   第31行,在 init 中       super(Serial,self)。 init (* args,** kwargs)文件&#34; C:\ Users \ Mikkel \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \串行\ serialutil.py&#34 ;,   第182行,在 init self.open()文件中   &#34; C:\用户\的Mikkel \应用程序数据\本地\程序\的Python \ Python35 \ lib中\站点包\串行\ serialwin32.py&#34 ;,   第62行,在open中引发SerialException(&#34;无法打开端口{!r}:   {!r}&#34; .format(self.portstr,ctypes.WinError()))   serial.serialutil.SerialException:无法打开端口&#39; COM11 \ n&#39;:
  FileNotFoundError(2,&#39;系统找不到指定的文件。&#39;,   无,2)

我正在从名为&#39; config.txt&#39;的txt文件加载数据,似乎它是

Port = lines[1]

ser = serial.Serial(Port,9600)

这就是问题所在。我使用的是错误的格式吗?我试图介绍一个&#39; str&#39; init&#39;并且&#39;浮动&#39;但没有任何作用。第[1]行的数据是COM11,它是当前端口。

1 个答案:

答案 0 :(得分:0)

签出错误日志 写入无法打开 //inside the success function, you get the results data from the server and loop inside the items, allright if you have only one object but use loop for more. results.data.forEach(function (object) { var tmpObject = JSON.parse(object.table_data); fabric.util.enlivenObjects([tmpObject], function (objects) { var origRenderOnAddRemove = canvas.renderOnAddRemove; canvas.renderOnAddRemove = false; console.log(objects); objects.forEach(function (o) { canvas.add(o); console.log(o); }); canvas.renderOnAddRemove = origRenderOnAddRemove; canvas.renderAll(); });//end enlivenObjects });//end data.forEach ,因此您必须删除换行符(COM11\n)。

示例:\n