使用输入更改目录路径

Using input to change directory path

我对 python 有点陌生,我觉得这个问题的答案很简单,但我不知道答案是什么。我正在尝试将文件从一个地方移动到另一个地方,但我不想每次移动该文件时都必须更改我的代码,所以我只想从终端获取用户输入。

    import shutil

    loop = True
    while loop:
        a = input()
        shutil.move("/home/Path/a", "/home/Path/Pictures")

我必须在 a 周围放置什么,以便它不会将其作为字符串的一部分读取?

一个解决方案

a = 'test.csv'
path = '/home/Path/{}'.format(a)

>>> path
/home/Path/test.csv

这应该可以满足您的要求。 os.path.join() 会将您从输入中获得的字符串值与您提供的路径的第一部分组合起来。您应该使用 os.path.join() 因为这将以独立于系统的方式形成路径。

import shutil
import os

loop = True

while loop:
    a = input()
    shutil.move(os.path.join("/home/Path/", a), "/home/Path/Pictures")

输出:

>>> a = input()
    test.txt
>>> path = os.path.join("/home/Path/", a)
>>> path
    '/home/Path/test.txt'

您也可以使用 "/home/Path/{0}".format(a) 将 a 的值与 {0} 交换,或者您可以执行 "/home/Path/{0}" + str(a) 这也将执行您想要的操作。

编辑以解决评论中的问题:

如果您的目录没有任何子目录,这将起作用。如果那里有目录和文件,它可能仍然有效,但我没有测试。 导入shutil 导入 os

files = os.listdir("/home/Path/")
for file in files:
    shutil.move(os.path.join("/home/Path/", file), "/home/Path/Pictures")