我正在尝试创建一个非常简单的函数,让我编辑一个我已经使用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()
我没有得到任何错误,但也没有其他事情发生(我只是被重定向到我的基本命令行)。并且我的意思是我调用函数然后,在它正下方的行上,它得到我为程序(〜$)命令行的提示。我的代码有什么问题,我该怎么做才能解决它?
答案 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)