在C# / Python中重命名远程文件服务器上的文件

2 投票
4 回答
2335 浏览
提问于 2025-04-15 18:18

我需要在一个Windows文件服务器上重命名一大堆文件——其实用什么语言都无所谓,只要快速简单就行!

我知道这很基础,但为了更清楚,我用伪代码来说明一下……

server = login (fileserver, creds)

foreach (file in server.navigateToDir(dir))
    rename(file)

我知道如果我是本地用户,怎么用Python或C#来做到这一点,但我不知道用Python远程操作是否可行。我搜索过代码片段和帮助,但到现在还没找到。

谢谢。

4 个回答

1

可以看看pyfilesystem,它为本地和远程文件系统提供了一个统一的操作界面。

1

使用 \\servername\sharename\somefile.foo 这样的格式来表示文件名——前提是你有权限连接到这个服务器,并且是在Windows系统上运行。

你也可以把网络驱动器映射成一个本地驱动器,这样就可以像使用其他本地驱动器一样使用它(比如 y:\sharename\somefile.foo)。

0

下面的代码会在指定文件夹路径的每个子目录中重命名一个文件。它会把文件名从给定的名字(比如“blah.txt”)改成子目录的名字加上文件扩展名。

注意,Z可以是本地驱动器或者网络驱动器(也就是说,如果文件夹在文件服务器上,可以把网络驱动器映射到它)。

举个例子,从命令行...

python renamer.py "Z:\\FolderCollectionInHere" blah.txt csv

...会把“Z:\FolderCollectionHere”这个文件夹下每个直接子目录中的文件'blah.txt'重命名为.csv格式。

import os
import sys

class Renamer:
    def start(self, args):
        os.chdir(args[1])
        dirs = os.listdir(".")

        for dir in dirs:
            try:
                os.rename(dir + "\\" + args[2], dir + "\\" + dir + "." + args[3])
                print "Renamed file in directory: " + dir
            except Exception:
                print "Couldn't find file to rename in directory: " + dir

Renamer().start(sys.argv)

撰写回答