在python中读取与声明字符串之间的区别
在python中声明字符串和读取字符串的值之间有什么区别(如果有的话) 我有一段代码,看起来像:在python中读取与声明字符串之间的区别,python,string,pyserial,Python,String,Pyserial,在python中声明字符串和读取字符串的值之间有什么区别(如果有的话) 我有一段代码,看起来像: file = open('comport.txt','r') for line in file: if "comport" in line: comport = line[9:] comport= COM1 文本文件看起来就像: file = open('comport.txt','r') for line in file: if "comport" in l
file = open('comport.txt','r')
for line in file:
if "comport" in line:
comport = line[9:]
comport= COM1
文本文件看起来就像:
file = open('comport.txt','r')
for line in file:
if "comport" in line:
comport = line[9:]
comport= COM1
当我尝试打开串行端口时,我会:
ser = serial.Serial(comport,baudrate=115200)
这不起作用(一堆错误),但它起作用:
comport = 'COM1'
ser = serial.Serial(comport,baudrate=115200)
我试着把引号放在文本文件中,但这也不起作用,我很确定我也在正确地拆分我的行,因为当我尝试打印它时,它会打印
COM1
可能在“COM1”
之后仍然有一个换行符\n
。试试这个:
comport = line[9:].strip()
或者这个:
comport = line.split("=")[1].strip()
此外,您应该使用和
来打开和关闭文件,并且不要将文件
用作变量名
with open('comport.txt','r') as f:
for line in f:
可能在
“COM1”
之后仍有换行符\n
。试试这个:
comport = line[9:].strip()
或者这个:
comport = line.split("=")[1].strip()
此外,您应该使用和
来打开和关闭文件,并且不要将文件
用作变量名
with open('comport.txt','r') as f:
for line in f:
可能在
COM1
之后还有一个\n
我想你的意思是用于文件中的行。readlines():
另外,你应该避免使用文件作为变量名,它是python内置的。@Will:不,文件对象可以根据需要使用缓冲区生成行,这是节省内存的),使用file.readlines()
而不是先将所有行读入内存,这不是一个好主意file
是Python 2中类型的名称,在Python 3中该名称已消失;掩盖它并不坏,因为它很少被使用。不过,最好还是给它起个别的名字。可能在COM1
之后还有一个\n
我想你的意思是表示文件中的行。readlines():
另外,你应该避免使用文件作为变量名,它是python内置的。@Will:no,文件对象可以根据需要使用缓冲区生成行,这是内存有效的),使用file.readlines()
将所有行首先读入内存,这不是一个好主意file
是Python 2中类型的名称,在Python 3中该名称已消失;掩盖它并不坏,因为它很少被使用。不过,最好还是给它取个别的名字。