Python 2.7 函数和文件

Python 2.7 函数和文件,python-2.7,Python 2.7,请帮忙:) 我在向毕索哈德威学习 练习20:函数和文件 from sys import argv script, input_file = argv def print_all(f): print f.read() def rewind(f): f.seek(0) def print_a_line(line_count, f): print line_count, f.readline() current_file = open(input_file) prin

请帮忙:) 我在向毕索哈德威学习 练习20:函数和文件

from sys import argv

script, input_file = argv
def print_all(f):
    print f.read()

def rewind(f):
    f.seek(0)

def print_a_line(line_count, f):
    print line_count, f.readline()

current_file = open(input_file)

print "First let's print the whole file:\n"

print_all(current_file)

print "Now let's rewind, kind of like a tape."

rewind(current_file)

print "Let's print three lines:"

current_line = 1
print_a_line(current_line, current_file)

current_line = current_line + 1
print_a_line(current_line, current_file)

current_line = current_line + 1
print_a_line(current_line, current_file)
如果当前线路=2 它怎么打印第二行

def rewind(f):
    f.seek(0)
&
**倒带(当前文件)**
为什么我们把(f) 为什么不输入文件

我试图解释我认为它在做什么


对不起,如果我问了一些愚蠢的问题:(

这里有两个问题在起作用

1--文件名和可操作的文件对象之间的差异

2——函数中的参数名和用于调用这些函数的值之间的差异

当您有一个名为(例如)
data.csv
的文件时,您可以使用字符串来引用它:

文件名='data.csv'

…但这只是一个字符串。要对具有该名称的文件进行操作,请执行以下操作:

fh=open(文件名)

您现在有了一个文件句柄,可以与文件读取、写入、删除、查找等功能一起使用。因此,您的答案的第一部分是,文件名与文件对象不同;因此,您可以使用
当前\u文件
(文件句柄)而不是
输入\u文件
(文件名)调用回放功能

另一个可能很明显的问题是,用于定义函数的占位符参数(如示例中的
f
)只是一个占位符——稍后调用该函数时,将使用调用该函数时使用的值

因此,虽然函数定义为
倒带(f)
,但当您稍后将其称为
倒带(当前_文件)
时,实际上是在
当前_文件
上执行搜索,而不是
倒带(f)
,这只是一个占位符

简而言之,您可以使用
f
调用
seek
(函数定义内),因为这是您选择用于可重用函数的占位符/符号名称(该名称可以在函数定义和函数体中更改为您想要的任何名称)在不影响任何内容的情况下。使用
current_file
调用
revind
的原因是您打开要处理的文件对象


这有意义吗?

这里有一个提示--将
当前行=1
更改为
当前行=8675309
看看会发生什么。谢谢兄弟8675309首先我明白了它定义了打印行(行数,f):打印行数,f。readline()因为我们写readline()当我再次键入时,它写下一行:)现在我需要第二个问题的答案,如果你知道的话,请告诉我我有很多问题要解决,我自己也知道答案,但这一课对我来说很难,第一次一起工作的时候我觉得自己很笨:)谢谢你,兄弟,这是你学习的方式——继续前进,不要害羞地寻求帮助我投了反对票:(但你是对的:)我希望我能成为专业的程序员:)我有个小问题,请:)我很抱歉:)def add(a,b):打印“ADDING%d+%d”%(a,b)return a+b get=add(5,10)结果:年龄:35岁(为什么不打印加5+6?)试着创建一个新问题,在那里你可以复制粘贴所有缩进的代码。它看起来应该可以工作,但是您包含了一些其他细节,比如代码片段中没有的“age”,所以我想知道您在这里键入的代码是否是您的真实代码。