首页 > 解决方案 > 我正在尝试在 python 中制作一个从链接下载文件并将其移动到特定文件夹的程序

问题描述

正如标题中所说,我正在尝试在 python 2.7 中编写一个脚本,从链接下载文件并将其移动到特定文件夹。我正在使用raw_input和 os 模块执行此操作。但是raw_inputforfileLocation变量没有注册os.system()操作。

我尝试改用两种不同的方法,都使用命令行。第一个涉及在mv操作中使用os.system()操作。确切的代码是os.system('mv {} {}'.format(fileName, fileLocation)). 另一个cd通过命令行运行操作以尝试更改下载位置。

这是代码:

link = raw_input('Link: ')
fileLocation = raw_input('Input File Location: ')
os.system('cd {}'.format(fileLocation)) 
os.system('curl -O {}'.format(link))
# os.system('mv {} {}'.format(fileName, fileLocation))

输出很干净,没有显示错误。我想要发生的是下载文件,然后使用第raw_input2 行的 fileLocation 中的操作立即移动到指定的文件夹,但文件被下载并保存在我的用户配置文件的主文件夹中。

标签: pythonmacosterminaldownloadfile-transfer

解决方案


发生这种情况是因为传入的命令os.system是在子 shell 中执行的。返回时os.system,它会丢失由 所做的更改cd

解决方案是在同一个 os.system 调用中运行这些命令

os.system('cd {}; curl -O {}'.format(fileLocation, link))

推荐阅读