2012-03-07 102 views
1

我想要在Python中做的是制作一个程序,您可以直接从命令行写入文件。我有所有的代码来做到这一点,但唯一相关的代码如下。文件命名,Python

aw = input("Do you want to append your text file, or rewrite the whole thing? (append/write) ") 
if aw == 'append': 
    textin = input("In the line below, write the text you want to put into your text document!\n\n") 
    outfile = open('mytext.txt', 'a') 
    outfile.write(textin) 

我所要做的是让这样的人可以选择文件名,但是当我做输入功能,name = input("Choose your filename, don't include an extension: ")和变线4成outfile = open(name, 'txt', 'a'),我得到一个语法错误!

+2

您可能打算连接名称,如'open(name +'.txt','a')'。你拥有它的方式会是一个问题,因为'“txt”'会被解释为'open()'的模式参数。 – birryree 2012-03-07 21:54:45

+0

@birryree:请添加您的评论作为答案。 – Philipp 2012-03-07 21:56:10

+0

好吧,我的评论可能已经发现了一个不同的问题,但是你的语法错误可能是其他问题 - 你可以更新以向我们展示当你尝试改变'outfile'行时你的代码是什么样的? – birryree 2012-03-07 22:07:43

回答

2

试试这个:outfile = open(name + '.txt', 'a')

Python不能串联那样的字符串等被处理open(name, 'txt', 'a')与三个参数的函数调用。不幸的是,open函数只需要两个。

编辑:如果这是Python 2.x代码,那么您也正在使用input函数不正确。根据the documentation的输入功能要求用户输入有效的python代码,您正在查找raw_input function

如果这是Python 3.x代码,那么正确的功能是input和我的道歉。

+0

此外,语法错误可能是由于错误的缩进或缺失大括号或某物。 – 2012-03-07 21:58:49

+0

我刚刚意识到这是因为'input'需要用户键入有效的Python。编辑我的答案。 – 2012-03-07 22:01:47

+1

如果是Python 3,'input()'是正确的函数。如果它是Python 2,'raw_input()'将是正确的选择。 – 2012-03-07 22:02:55