写作而不是打印,Python 2.7

时间:2015-12-30 02:36:21

标签: python-2.7

我的代码完美无缺。我可以按照我想要的方式打印到屏幕上。但是,我希望它写入文件,以便我可以查看文件而不是打印屏幕。所以我试着做以下事情,但我想出了几个问题。错误讯息:

from xml.dom import minidom
import sys
import os, fnmatch


def find_files(directory, pattern):
    for root, dirs, files in os.walk(directory):
        for basename in files:
        if fnmatch.fnmatch(basename, pattern):
            filename = os.path.join(root, basename)
            yield filename

for filename in find_files('c:/Python27','*file.xml'): 
    print ('Found file.xml:', filename)


xmldoc = minidom.parse(filename)
itemlist = xmldoc.getElementsByTagName('Game')
for item in itemlist:
    year = item.getElementsByTagName('Year')
    for s in year:
        print item.attributes['name'].value, s.attributes['value'].value

TypeError:函数只需1个参数(给定2个),而代码使用write函数:

from xml.dom import minidom
import sys
import os, fnmatch


def find_files(directory, pattern):
    for root, dirs, files in os.walk(directory):
        for basename in files:
        if fnmatch.fnmatch(basename, pattern):
            filename = os.path.join(root, basename)
            yield filename
f = open('test.txt','w')
for filename in find_files('c:/Python27','*file.xml'): 
    f.write('Found file.xml:', filename)


xmldoc = minidom.parse(filename)
itemlist = xmldoc.getElementsByTagName('Game')
for item in itemlist:
    year = item.getElementsByTagName('Year')
    for s in year:
        f.write (item.attributes['name'].value), f.write(s.attributes['value'].value)

1 个答案:

答案 0 :(得分:1)

如果你想把你的两个参数组成一行(f.write会接受)你可以做类似的事情

f.write("Found file.xml:" + filename + "\n")

+将连接这些元素,并在最后一个文件中为您提供一个整齐的元素,并在最后一个文件中为您提供一个换行符。

实际上,Error消息看起来好像在告诉你究竟是什么问题 - f.write确实只接受一个参数,并且在函数调用中使用逗号表示第二个参数。