Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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_File_Ftplib - Fatal编程技术网

Python 远程更改文件

Python 远程更改文件,python,file,ftplib,Python,File,Ftplib,我有一些远程文件: ___________ [somevar] Test: 2 ___________ 例如,我想将var“Test”更改为3,因此我将: ___________ [somevar] Test: 3 ___________ 我正在使用此功能上载文件 ftp = ftplib.FTP('') ftp.connect(HOSTNAME,PORT) ftp.login(FTP_NAME,FTP_PASS) file = open(PATH + FIL

我有一些远程文件:

___________
[somevar]
Test: 2
___________
例如,我想将var“Test”更改为3,因此我将:

___________
[somevar]
Test: 3
___________
我正在使用此功能上载文件

    ftp = ftplib.FTP('')
    ftp.connect(HOSTNAME,PORT)
    ftp.login(FTP_NAME,FTP_PASS)
    file = open(PATH + FILENAME, 'rb')
    ftp.storbinary('STOR '+FILENAME, file)
    file.close() 
    ftp.quit()
我知道我可以下载文件,在本地更改,然后再次上传,但我正在寻找远程解决方案

你认为这可以做到吗


我可以通过IOString执行此操作吗:

这是我的代码,不幸的是这不起作用:(




没有
RETR
+
STOR
您无法远程更改文件,尽管您可以在内存中编辑文件,如果文件很小,则无需保存。

如何在不写入磁盘的情况下执行此操作?ftp.retrbinary的第二个参数接受一个函数,该函数针对下载的每个数据块调用。您可以这样做:
my\u list=[];ftp.retrbinary('RETR'+文件名,my_list.append)
    # Writing to a buffer
    ChangeVar = StringIO("[Somevar] \nTest: 3")
    ftp = ftplib.FTP('')
    ftp.connect(HOSTNAME,FTP_PORT)
    ftp.login(FTP_NAME,FTP_PASS)

    ftp.storbinary('STOR '+Myvarfile, switchVar)

    #Disconnect
    ftp.quit()