我正在尝试在 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>')
不更改目录
如标题所述,我正在尝试在 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>')
不更改目录