Python - 将文件名/文件路径写入文本文件

时间:2016-03-15 23:20:47

标签: python-2.7 tkinter

我在Python脚本中使用tkinter定义了一些文件名,如下所示:

def save_file(self):
self.filename = tkFileDialog.asksaveasfilename(title="Save...", filetypes=([("Excel Workbook","*.xlsx")]))

最后,应将这些变量的文件名写入文本文件:

text_out = open('output.txt', 'w')
text_out.write("The first filename is " + self.filename + " + '\n')
text_out.write("The first pathname is " + self.filelocation + '\n')
text_out.close()

但它不起作用。有没有人有任何想法?我也尝试过:

text_out.write("The first filename is " + str(self.filename) + " + '\n')

但没有加快结果。

2 个答案:

答案 0 :(得分:0)

您遇到语法错误。有一个双引号可以启动一个字符串,但没有一个可以结束它。

text_out.write("The first filename is " + str(self.filename) + " + '\n')
#                                                              ^ string start

该行应如下所示:

text_out.write("The first filename is " + str(self.filename) + '\n')

在旁注中,您应该在上下文中使用文件,即with语句:

with open('output.txt', 'w') as text_out:
  text_out.write("The first filename is " + self.filename + " + '\n')
  text_out.write("The first pathname is " + self.filelocation + '\n')

这确保即使发生异常也会关闭文件。打字也少了。 ;)

答案 1 :(得分:-1)

我从命令行尝试了它并收到此错误消息:

SyntaxError: EOL while scanning string literal

这似乎意味着Python并不喜欢拥有' \ n'在与+粘在一起的一串字符串的末尾。尝试将项目作为列表处理并加入它们,如下所示:

text_out = open('output.txt', 'w')
filewrite = ''.join([
    'The first filename is ', self.filename, '\n',
    'The first pathname is ', self.filelocation, '\n'])
text_out.write(filewrite)
text_out.close()

我从 Python Cookbook 中得到了这个想法,它对我有用。