Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中读取与声明字符串之间的区别_Python_String_Pyserial - Fatal编程技术网

在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

在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 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中该名称已消失;掩盖它并不坏,因为它很少被使用。不过,最好还是给它取个别的名字。