作为一个更熟悉数据库和ETL的人,我正在学习Python。我不确定在下面的代码中target
是从哪里来的。
from sys import argv
script, filename = argv
target = open(filename, 'w')
我认为argv
是sys
模块中的一个类,但我不认为target
来自argv
。
发布于 2021-02-02 13:09:30
您正在使用python中的open()
- 。此函数返回一个分配给target
变量的 -。现在,您可以与target
交互以写入数据(因为您使用的是w
模式)。
发布于 2021-02-02 13:02:57
如果你运行type(target)
,你会得到这样的结果:<_io.TextIOWrapper name='dde-recommendation-engine/sample_data/synthetic-micro/ratings.txt' mode='r' encoding='UTF-8'>
简单地说,这意味着它是一个访问特定文件的对象(只有写权限,因为您有w
模式)。
您可以使用此对象通过target.write(.....)
将内容添加到文件中
但是,请记住在最后执行target.close()
来关闭该文件。
做同样事情的另一种方式,我最喜欢的是:
with open(filename, 'w') as target:
target.write(...)
这样,一旦您脱离with
上下文,文件就会自动关闭。
发布于 2021-02-02 13:03:44
argv是由用户在shell中运行程序时提供的参数填充的列表。有关这方面的详细信息,请参阅https://docs.python.org/3/library/sys.html#sys.argv。
用户从shell提供了文件名,程序使用打开调用https://docs.python.org/3/library/functions.html#open来获取该文件名上的文件句柄
该文件句柄存储在名为target的变量中(可以随意命名),以便您可以使用其他文件方法处理该文件。
https://stackoverflow.com/questions/66003861
复制相似问题