为什么print语句在python中生成没有任何标记的换行符?

为什么print语句在python中生成没有任何标记的换行符?,python,python-2.7,Python,Python 2.7,这是密码- import os file = open("list.txt", "rw+") text = file.readline() print "ffmpeg -loop 1 -i image.jpg -i \""+text+"\" -vf scale=1280:720 -shortest -acodec copy -vcodec mpeg4 \""+text+".mp4\"" os.system("ffmpeg -loop 1 -i image.jpg -i \""+text+"\

这是密码-

import os

file = open("list.txt", "rw+")
text = file.readline()
print "ffmpeg -loop 1 -i image.jpg -i \""+text+"\" -vf scale=1280:720 -shortest -acodec copy -vcodec mpeg4 \""+text+".mp4\""

os.system("ffmpeg -loop 1 -i image.jpg -i \""+text+"\" -vf scale=1280:720 -shortest -acodec copy -vcodec mpeg4 \""+text+".mp4\"")
但是输出是这样的:

ffmpeg -loop 1 -i image.jpg -i "some-file-path
" -vf scale=1280:720 -shortest -acodec copy -vcodec mpeg4 "some-file-path"
而它应该在一行中


ffmpeg抛出一个文件不存在的错误

因为您的文件在行尾有一个新行字符(
'\n'
),所以,
所以
text
“某个文件路径\n”

您应该将
text=file.readline()
更改为
text=file.readline().strip()

文本文件中的所有行(当python至少读取它们时)都以“\n”结尾

容易解决

text = file.readline()[:-1]
这将从行中删除最后一个字符“\n”。
执行此操作时要小心,因为如果要回写该行,需要在其上附加“\n”(使用file.write(“某物”))

file.readline().rstrip()
,如果不想去掉前导空格/缩进。@Tadhgmandald Jensen:通常是这样。大多数文本编辑器都会在文件中插入换行符作为最后一个字符。但不要求它存在。即使你们是对的,我的解决方案仍然是正确的,因为在删除它之前,您可以轻松添加if语句来检查“\n”是否存在。