在C# / Python中重命名远程文件服务器上的文件
我需要在一个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)