我正在尝试在 python 中制作一个程序,从 link 下载文件并将其移动到特定文件夹

I'm trying to make a program in python that downloads files from a link, and moves it to a specific folder

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

我尝试使用两种不同的方法,都使用命令行。第一个涉及在 os.system() 操作中使用 mv 操作。确切的代码是 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))

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

这是因为在 os.system 中传递的命令是在子 shell 中执行的。当返回 os.system 时,它会丢失 cd.

所做的更改

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

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

你的问题出在这一行:

os.system('cd {}'.format(fileLocation)) 

您想将其更改为:

os.chdir(fileLocation)

您的原始代码创建了一个子进程来执行 "cd" 命令,但实际上并没有更改当前进程的目录。您可能想查看 link1 for how to change directory and link2 以了解为什么 os.system('cd <something>') 不更改目录