如何让我的文件被打开?

问题描述:

您好,我正在合并两个单独的.txt文件并输出个性化信函的功能。问题是,我可以将我的文本包含在funciton模块中,并且完美地工作。但是当我尝试在函数打开它们,以供功能使用我得到这个如何让我的文件被打开?

错误消息:

回溯(最近通话最后一个): 文件“/用户/ nathandavis9752/CP104/davi0030_a10 /src/q2_function.py“,第25行,在 data = cleanData(q2) 文件”/Users/nathandavis9752/CP104/davi0030_a10/src/q2_function.py“,第17行,在cleanData中 return [item.strip( ).split('\ n \ n')for query.split(' - ')] AttributeError:'file'对象没有属性'split'

code:

letter = open('letter.txt', 'r') 

q2 = open('q2.txt', 'r') 

def cleanData(query): 
    return [item.strip().split('\n\n') for item in query.split('--')] 

def writeLetter(template, variables, replacements): 
    # replace ith variable with ith replacement variable 
    for i in range(len(variables)): 
     template = template.replace(variables[i], replacements[i]) 
    return template 

data = cleanData(q2) 

print (data) 

variables = ['[fname]', '[lname]', '[street]', '[city]'] 

letters = [writeLetter(letter, variables, person) for person in data] 

for i in letters: 
    print (i) 

q2.txt文件:

Michael 

dawn 

lock hart ln 

Dublin 

-- 

kate 

Nan 

webster st 

king city 

-- 

raj 

zakjg 

late Road 

Toronto 

-- 

dave 

porter 

Rock Ave 

nobleton 

letter.txt文件:

[fname] [lname] 
[street] 
[city] 

Dear [fname]: 

    As a fellow citizen of [city], you and all your neighbours 
on [street] are invited to a celebration this Saturday at 
[city]'s Central Park. Bring beer and food! 
+0

请记住阅读错误。重要的部分是最后一部分:'AttributeError:'文件'对象没有属性'split'。 – keyser 2015-04-05 23:30:38

您正在尝试而分割文件缓冲区不是字符串。

def cleanData(query): 
    return [item.strip().split('\n\n') for item in query.read().split('--')] 
+0

仍然没有工作... 错误消息: 回溯(最近通话最后一个): 文件 “/Users/nathandavis9752/CP104/davi0030_a10/src/q2_function.py” 31行,在 字母= [ writeLetter(letter,variables,person)for data in data] 文件“/Users/nathandavis9752/CP104/davi0030_a10/src/q2_function.py”,第22行,在writeLetter template = template.replace(variables [i],replacements [i]) IndexError:列表索引超出范围 – stacker 2015-04-05 23:30:06

+0

立即尝试。否则,你的其他功能是错误的。 – 2015-04-05 23:34:03

+0

回溯(最近通话最后一个): 文件 “/Users/nathandavis9752/CP104/davi0030_a10/src/q2_function.py” 25行,在 数据= cleanData(Q2) 文件“/用户/ nathandavis9752/CP104/davi0030_a10/src/q2_function.py“,第17行,在cleanData return [item.strip()。split('\ n \ n')for item in query.read()。split(' - ')] AttributeError:'str'对象没有属性'读' – stacker 2015-04-05 23:37:33