vim编写python程序_从python脚本调用编辑器(vim)

在Python3中:'str' does not support the buffer interface$ python3 editor.py

Traceback (most recent call last):

File "editor.py", line 9, in

tf.write(initial_message)

File "/usr/lib/python3.4/tempfile.py", line 399, in func_wrapper

return func(*args, **kwargs)

TypeError: 'str' does not support the buffer interface

对于python3,使用initial_message = b""声明缓冲字符串。

然后使用edited_message.decode("utf-8")将缓冲区解码为字符串。import sys, tempfile, os

from subprocess import call

EDITOR = os.environ.get('EDITOR','vim') #that easy!

initial_message = b"" # if you want to set up the file somehow

with tempfile.NamedTemporaryFile(suffix=".tmp") as tf:

tf.write(initial_message)

tf.flush()

call([EDITOR, tf.name])

# do the parsing with `tf` using regular File operations.

# for instance:

tf.seek(0)

edited_message = tf.read()

print (edited_message.decode("utf-8"))

结果:$ python3 editor.py

look a string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值