非常直接给你们,但你们如何修改%s的输出值?
print "Successfully created the file: %s" % iFile + '.txt'
我尝试使用()' s,{}' s,但没有任何效果?
iFile是文件的名称,我希望它在显示时以.txt显示。
编辑:
我得到输出Successfully created the file: <open file 'test', mode 'rb' at 0x14cef60>.txt
答案 0 :(得分:7)
"Successfully created the file: {0}.txt".format(iFile)
示例:
In [1]: iFile = "foo"
In [2]: "Successfully created the file: {0}.txt".format(iFile)
Out[2]: 'Successfully created the file: foo.txt'
修改强>
由于您似乎有文件而不是文件名,因此您可以这样做:
In [4]: iFile = open("/tmp/foo.txt", "w")
In [5]: "Successfully created the file: {0}.txt".format(iFile)
Out[5]: "Successfully created the file: <_io.TextIOWrapper name='/tmp/foo.txt' mode='w' encoding='UTF-8'>.txt"
In [6]: "Successfully created the file: {0}.txt".format(iFile.name)
Out[6]: 'Successfully created the file: /tmp/foo.txt.txt'
请注意,现在输出为foo.txt.txt
,并带有 double 扩展名。如果您不想这样,因为该文件的名称已经是foo.txt
,那么您就不应该打印其他扩展名。
使用%
是格式化字符串的旧方法。当前Python tutorial explains format
in detail。
答案 1 :(得分:4)
问题是你没有传递一个带有文件名的字符串 - 你传递的是一个文件句柄对象,这是完全不同的。要从文件句柄中获取名称,请使用iFile.name
。
print "Successfully created the file: %s" % iFile.name + '.txt'
这将打印您正在寻找的内容。
答案 2 :(得分:-1)
您可以尝试以下代码。我尝试使用Python shell,它可以工作。我想你只是错过了括号。
print "Successfully created the file: %s.txt" % iFile
或
print "Successfully created the file: %s" % (iFile + '.txt')