麻烦让函数运行,python

对于我的python类,我被指示创建一个函数,该函数将读取文件并报告行数,单词数和字符数。我可以使代码正常工作,但是一旦尝试将其转换为函数,它将无法正常工作。怎么了?我还需要返回一个元组中的值。我不断收到此错误:UnboundLocalError:赋值之前引用了本地变量'line_cnt'


def file_elem(filenm):

    f = open(filenm,'r')

    wrd_cnt = 0

    char_cnt = 0

    line_len = 0

    while f is open:

        line_cnt = len(f.readlines( ))

        for line in f:

            f_lines = line.split()

            wrd_cnt += len(f_lines)

            no_spaces = ''.join(line.split())

            char_cnt += len(no_spaces)

    return print(line_cnt, wrd_cnt, char_cnt)


import os

x = os.path.join("C:", "\\temp", "practice4.txt")

file_elem(x)


喵喔喔
浏览 194回答 2
2回答

婷婷同学_

更改while f is open为with open(filenm,'r') as f并删除f = open(filenm,'r')。并移动return (line_cnt, wrd_cnt, char_cnt)with块里面!另外,您不需要line_cnt = len(f.readlines( ))。您应该使用一个计数器并将其递增。否则,文件将在for line in f!之前读取。

蝴蝶刀刀

更改此:return print(line_cnt, wrd_cnt, char_cnt)到return (line_cnt, wrd_cnt, char_cnt)和这个file_elem(x)到:print file_elem(x)它应该和以前一样工作。您的函数返回值。您的主程序将它们打印出来。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python