1

我使用该 python 代码获取 3 个输入并写入一个文件,但是当我查看 /tmp 下名为 output.txt 的文件时,我看到在字符串末尾添加了一个“i”。为了说明,当我作为输入给出时a、b 和 c 分别得到这样的输入:ab ci。我能做些什么来解决这个问题?

    name = raw_input("Name:")
    email = raw_input("Email:")
    phone = raw_input("Telephone:")

    a=open("/tmp/output.txt","w")
    a.writelines( name+' '+email+' '+phone)
    a.close()
4

3 回答 3

1

我不:

$ cat >/tmp/t <<_EOF_
> name = raw_input("Name:")
> email = raw_input("Email:")
> phone = raw_input("Telephone:")
>
> a=open("/tmp/output.txt","w")
> a.writelines( name+' '+email+' '+phone)
> a.close()
> _EOF_

$ (echo "John Smith"; echo "nobody@example.com"; echo "123-45-678") | python /tmp/t

$ hexdump -C /tmp/output.txt
00000000  4a 6f 68 6e 20 53 6d 69  74 68 20 6e 6f 62 6f 64  |John Smith nobod|
00000010  79 40 65 78 61 6d 70 6c  65 2e 63 6f 6d 20 31 32  |y@example.com 12|
00000020  33 2d 34 35 2d 36 37 38                           |3-45-678|
00000028
于 2012-11-27T04:16:15.217 回答
1

要么phone'i'结尾,要么稍后附加'i'到文件中。

.writelines()接受一系列字符串。它在这里是偶然的(任何字符串也是一个字符串的序列)。要将字符串写入文件,您可以.write()改用。'\n'如果需要,请在末尾添加;既不.writelines()也不.write为您附加换行符。

于 2012-11-27T05:23:29.580 回答
0

尝试打印

print phone

查看变量“电话”的内容是否符合您的预期

于 2012-11-27T04:11:39.010 回答