如何创建一个允许我在python中编辑.txt文件的函数?

时间:2016-02-19 06:26:45

标签: python function editing

我正在尝试创建一个非常简单的函数,让我编辑一个我已经使用Python 3.5编写过的文件。我的写作功能很好,但我把它包括在内以防万一。它看起来像这样:

def typer():
    print("")
    print("Start typing to begin.")
    typercommand = input("  ")
    saveAs = input("Save file as: ")
    with open(saveAs, 'w') as f:
        f.write(typercommand)
    if saveAs == (""):
        commandLine()
    commandLine()

我的编辑功能如下:

def edit():
    file = input("Which file do you want to edit? ")
    with open(file, 'a') as f:
        for line in f:
            print(line)

然后我使用我的命令行函数调用该函数:

def commandLine():
    command = input("~$: ")
    if command == ("edit"):
        edit()

我没有得到任何错误,但也没有其他事情发生(我只是被重定向到我的基本命令行)。并且我的意思是我调用函数然后,在它正下方的行上,它得到我为程序(〜$)命令行的提示。我的代码有什么问题,我该怎么做才能解决它?

2 个答案:

答案 0 :(得分:0)

如果您要阅读和写入文件,则必须使用模式'r+''w+''a+'将其打开。 请注意,'w+'会截断文件,因此您可能需要'r+''a+',请参阅doc

类似的东西:

def edit():
    file = input("Which file do you want to edit? ")
    with open(file, 'r+') as f:
        for line in f:
            print(line)

        # here you can write to file
        ...

已编辑:缩进错误

答案 1 :(得分:0)

在您的编辑功能中,每行标准输出只有printing,但您写任何内容。

def edit():

    file = input("Which file do you want to edit? ")
    with open(file, 'w+') as f:
        filetext = ""
        for line in f:
            filetext += line

        # do stuff with filetext
        ...

        # then write the file
        f.write(filetext)