Python 中的字符串数组连接问题:Str(ArrayOfString[1])+" "+Str(ArrayOfString[2]) 似乎不起作用

Concatenation of strings array issues in Python: Str(ArrayOfString[1])+" "+Str(ArrayOfString[2]) doesn't seem to work

您好,我的 python 脚本有问题,我无法将 2 个字符串数组串联起来 returns-

SyntaxError: can't assign to function call

这是我的脚本:

import os, sys, MySQLdb
# connecting to a database
db = MySQLdb.connect(host="localhost", user="MyUser", passwd="MyPassword",db="MyDB")

cursor = db.cursor()

cursor.execute("SELECT * FROM MyTable")

db.commit()

# get the number of rows in the resultset
numrows = int(cursor.rowcount)

# Opening a file to write in it a script
fname = os.path.normpath("C:\Users\Me\Desktop\MyScript.cmd")
f = open(fname, "w")

# get and display one row at a time.
for x in range(0,numrows):
    row = cursor.fetchone()
    print row[1], "-->", row[2]

这是我想做的;使 row[1] 字符串不超过 16 个字符 如果是,则将其放在行[2] 的开头并将行[1] 切片为16 个字符

这是我第一次尝试做的事情 -

#if len(str(row[1])>=16:
#   str(row[2])=str(row[1])+" "+str(row[2])
#   str(row[1])=str(row[1][0:14])

但是现在不行了,我尝试不测试字符串长度,直接把行[1]放在行[2]中,不管行[1]有多长

    str(row[2])=str(row[1])+" "+str(row[2])
    str(row[1])=str(row[1])[:16]
    f.write("vtaddapp /Nom=test/%s /Comm=\"%s\"\n" % (str(row[1]), str(row[2])))
f.close()

我正在使用 python 2.7 并使用 Windows OS

只需将您的第一次尝试更改为以下内容:

if len(str(row[1])) >= 16:
    row[2] = str(row[1])+" "+str(row[2])
    row[1] = str(row[1][0:16])

我的回答自由改编自@phylogenesis 的评论。

更新: 上面的答案不会起作用,因为行是一个元组,因此它是不可变的。您需要将 1 和 2 的值分配给其他一些变量,并在进一步处理中使用它们。

if len(str(row[1])) >= 16:
    temp2 = str(row[1])+" "+str(row[2])
    temp1 = str(row[1][0:16]) 
else:
    temp2 = str(row[2])
    temp1 = str(row[1])

一个简单的方法是:

temp2, temp1 = str(row[1])+" "+str(row[2]), str(row[1][0:16]) if len(str(row[1])) >= 16 else str(row[2]), str(row[2])