用python编辑文本文件

用python编辑文本文件,python,Python,我正在尝试用python编写一个实用程序,它将列出当前目录中的文本文件,让用户选择一个文件,然后在文本编辑器中打开该文件。如何在os.system命令中引用数组 import os from os import listdir from os.path import isfile, join mypath = os.getcwd() onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ] cnt = 0 for

我正在尝试用python编写一个实用程序,它将列出当前目录中的文本文件,让用户选择一个文件,然后在文本编辑器中打开该文件。如何在os.system命令中引用数组

import os
from os import listdir
from os.path import isfile, join
mypath = os.getcwd()
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]

cnt = 0
for s in onlyfiles:
    cnt += 1
    print "%d : %s" % (cnt,s)
choice = raw_input("Select file: ")
os.system("kate onlyfiles[choice]")
更好的解决办法是:

subprocess.call(['vim', '{}'.format(onlyfiles[int(choice) - 1])])

谢谢你的帮助。我将研究子流程

os.system("kate %s " % onlyfiles[int(choice)])

提示:查看打印行:您已经知道如何格式化字符串。由于您正在处理用户输入,因此最好使用子流程模块,因为这将适用于您提供的任何输入,包括空格或特殊shell字符。子流程将接受一个列表,请参见文档。您也可以使用shlex模块来转义输入,但这并不是那么容易或万无一失。啊,谢谢,文件名中的空格是邪恶的,我会考虑如何处理它。
os.system("kate %s " % onlyfiles[int(choice)])