FRANK_0123 发表于 2018-9-11 08:25:27

Python 31课 课后作业

import pickle
def save_file(boy,girl,count):
    file_1name = 'boy_'+str(count)+'.txt'
    file_2name = 'girl'+str(count)+'.txt'
    f1 = open('D:\\'+file_1name,'wb')
    f2 = open('D:\\'+file_2name,'wb')
    pickle.dump(boy,f1)
    pickle.dump(girl,f2)
    f1.close()
    f2.close()
def print_file(file_2name,file_1name):
    f3 = open('D:\\'+file_1name,'rb')
    f4 = open('D:\\'+file_2name,'rb')
    my_f3 = pickle.load(f3)
    my_f4 = pickle.load(f4)
    print(f3)
    print(f4)
   
def spilt_file(file_name):
    f0 = open(file_name)
    boy = []
    girl = []
    count = 0
    for each_line in f0:
      if each_line[ :12] != '============':
            each_line.split(':',1)
            if each_line=='小客服':
                girl.append(each_line)
            if each_line=='小甲鱼':
                boy.append(each_line)
      else:
            save_file(boy,girl,count)
            boy = []
            girl = []
            count = count + 1
    save_file(boy,girl,count)
    f0.close
    print_file(file_2name,file_1name)

   
file_name = input('请输入文件')
spilt_file(file_name)

各位好,我想在原来的函数中添加一个把之前保存的文件打印到屏幕上的函数print_file(file_2name,file_1name),但是报错print_file函数中形参未定义。请问如何修改该形参,才可以打开之前保存的文件,并打印在屏幕上。



冬雪雪冬 发表于 2018-9-11 08:44:57

执行print_file(file_2name,file_1name)时找不到file_2name,file_1name这两个变量,因为它们只是在函数def save_file(boy,girl,count):中被定义,属于局部变量。

BngThea 发表于 2018-9-11 08:45:08

左边括号是中文的,改成英文的即可

瑾瑾小喵的学长 发表于 2018-9-11 11:01:40

新人,求问课后作业在哪里看呀,找了半天,哭晕

RIXO 发表于 2018-9-11 14:12:23

你没有用英文的逗号!!

FRANK_0123 发表于 2018-9-12 08:36:55

冬雪雪冬 发表于 2018-9-11 08:44
执行print_file(file_2name,file_1name)时找不到file_2name,file_1name这两个变量,因为它们只是在函数def ...

那请问如何设置print_file(file_2name,file_1name)中的形参,可以正常调用函数,打印保存的文件到屏幕上。

冬雪雪冬 发表于 2018-9-12 09:02:31

将def save_file(boy,girl,count):中 file_1name file_2name设为全局变量
页: [1]
查看完整版本: Python 31课 课后作业