Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 访问共享网络驱动器和删除特定文件的最佳方式_Python_Bash_Powershell - Fatal编程技术网

Python 访问共享网络驱动器和删除特定文件的最佳方式

Python 访问共享网络驱动器和删除特定文件的最佳方式,python,bash,powershell,Python,Bash,Powershell,我的同事要求我编写一个脚本,删除更新程序后重新出现的特定文件。她一直在手动进入每个驱动器和文件夹,删除更新后添加的垃圾文件 我有一个总是需要删除的文件名列表。我尝试使用python和os.remove,但遇到了一些问题。我必须访问共享网络驱动器,输入文件夹,并删除她总是手动删除的文件列表 我不确定python是否适合这项工作。它可能是Bash或PowerShell,但我对编程不是很精通 如果有人对如何最好地做到这一点提出建议,我将不胜感激 这是我现在的代码,作为示例(同样,不是很熟练): 它给了

我的同事要求我编写一个脚本,删除更新程序后重新出现的特定文件。她一直在手动进入每个驱动器和文件夹,删除更新后添加的垃圾文件

我有一个总是需要删除的文件名列表。我尝试使用python和os.remove,但遇到了一些问题。我必须访问共享网络驱动器,输入文件夹,并删除她总是手动删除的文件列表

我不确定python是否适合这项工作。它可能是Bash或PowerShell,但我对编程不是很精通

如果有人对如何最好地做到这一点提出建议,我将不胜感激

这是我现在的代码,作为示例(同样,不是很熟练):

它给了我一个错误说明:

TypeError: remove: path should be string, bytes or os.PathLike, not list

是否必须为每个路径和文件创建一个变量?

您可以在列表中循环执行删除操作

import os

filePaths = ['D:/test/remove.txt', 'F:/test/remove.txt']
for filePath in filePaths:
    try: 
        print(f"removing {filePath}")        
        os.remove(filePath)
    except OSError as e:
        print(f"Failed, {e}")
注意反斜杠,
“\t”
是制表符。这些都可以

"D:\\test\\remove.txt"
r"D:\test\remove.txt"
"D:/test/remove.txt"
在PowerShell中:

$FilePaths =
@(
    'D:\test\remove.txt'
    'F:\test\remove.txt'
)

$FilesPaths | Remove-Item

寻求调试帮助的问题(“此代码为什么不工作?”)应包括所需的行为、特定的问题或错误,以及在问题本身中将其复制为格式化文本所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。Python与任何其他具有文件系统支持的通用编程语言一样能够做到这一点。Python和其他语言一样是一个不错的选择。我想这是Windows。如果您有一个挂载的驱动器,比如T,那么python非常乐意使用基于它的路径。可能
os.remove(“T:/sharedbuild/somefile.txt”)
。有像
pathlib.Path.glob
这样的工具可以帮助您查找文件。@tdelaney我添加了一个我正在尝试执行的代码示例。我认为os.remove不允许列表,所以我假设我必须为每个路径和文件创建一个变量。如果有别的办法,请告诉我。
$FilePaths =
@(
    'D:\test\remove.txt'
    'F:\test\remove.txt'
)

$FilesPaths | Remove-Item