Python file.write() 正在连接字符串中的变量后添加一个额外的换行符

Python file.write() is adding an extra newline after a variable in a concatenated string

我一直在努力解决这个问题。我写了:

file.write("pyautogui.write(" + "'" + textEntry + "'" + ")")

但是在写入的文件中,写入了以下内容:

pyautogui.write('test
')

我希望所有内容都在一条线上。有谁知道这是什么原因?我试过修复它,但无济于事。

您的 textEntry 变量末尾可能有一个换行符。

如果您想这样做,您应该尝试从字符串末尾去除换行符和空格,例如:

file.write("pyautogui.write(" + "'" + textEntry.rstrip() + "'" + ")")

这里有一些关于 rstrip 的更多信息:

我觉得你的textEntry就是这样

    textEntry = '''
text
'''

所以它有一个换行符。尝试删除它并简单地写

`textEntry='text'`

这里发生的事情是 textEntry 变量的末尾可能有一个 \n 字符,解决这个问题的一个简单方法是使用 strip()。此外,通常建议使用 f-Strings 而不是每次都执行 +。解决方法如下:

file.write(f"pyautogui.write('{textEntry.strip()}')")

由于 textEntry 字符串中始终会有一个尾随换行符 (\n),您所要做的就是使用省略字符串中最后一个字符的切片:

file.write("pyautogui.write(" + "'" + textEntry[:-1] + "'" + ")")

您还可以使用 Python 格式化字符串:

file.write(f"pyautogui.write('{textEntry[:-1]}')")