1

我对 Python 比较陌生。所以请原谅我的天真。在尝试将字符串写入文件时,变量之后的字符串部分被放在新行上,它不应该是。我正在使用 python 2.6.5 顺便说一句

arch = subprocess.Popen("info " + agent + " | grep '\[arch\]' | awk '{print $3}'", shell=True, stdout=subprocess.PIPE)
arch, err = arch.communicate()
strarch = str(arch)
with open ("agentInfo", "a") as info:
        info.write("Arch Bits: " + strarch + " bit")
        info.close()
os.system("cat agentInfo")

期望的输出:

"Arch Bits: 64 bit"

实际输出:

"Arch Bits: 64
bits"
4

1 回答 1

3

看起来str(arch)有一个尾随的新行,您可以使用str.stripor删除它str.rstrip

strarch = str(arch).strip()   #removes all types of white-space characters

或者:

strarch = str(arch).rstrip('\n') #removes only trailing '\n'

您还可以在此处使用字符串格式

strarch = str(arch).rstrip('\n')
info.write("{}: {} {}".format("Arch Bits", strarch, "bits"))

请注意,不需要info.close(),with语句会自动为您关闭文件。

于 2013-07-12T07:43:19.207 回答