作为一个更熟悉数据库和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
复制相似问题