2

我需要重命名 Windows 文件服务器上的整个文件堆 - 我不介意我真正使用什么语言,只要它快速简单!

我知道这是基本的,但只是为了澄清 - 在伪代码中......

server = login (fileserver, creds)

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

如果我是本地用户,我知道如何在 Python/C# 中执行此操作,但不知道是否可以使用 Python 远程执行此操作。我搜索了代码片段/帮助,但还没有找到。

谢谢。

4

4 回答 4

1

使用 \\servername\sharename\somefile.foo 作为文件名 - 只要您有权连接到它并在 Windows 上运行。

您还可以映射网络驱动器并将其视为任何其他本地驱动器 (y:\sharename\somefile.foo)

于 2010-01-21T14:55:43.490 回答
1

如果您需要本地执行代码的性能,您还可以使用 PSEXEC 在服务器上远程执行代码。请参阅http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

于 2010-01-21T21:47:56.730 回答
1

看看pyfilesytem,它为本地和远程文件系统提供了一致的接口。

于 2010-01-23T21:08:45.843 回答
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)
于 2010-01-21T15:27:20.373 回答