writing windows file and directory path to linux remote server in Python?











up vote
-1
down vote

favorite
1












def srv_connect(USERNAME=parser.get('init', 'USERNAME'),
PASSWORD=parser.get('init', 'PASSWORD'),
HOST=parser.get('init', 'HOST')):
global s #making s a global variable to return
try:
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
s = pysftp.Connection(HOST, username=USERNAME, password=PASSWORD, cnopts=cnopts)
except Exception, e:
print("Failed to connect to " + HOST)
print (str(e))
finally:
return (s)

def dir_search(s):
try:
for i in parser['data']:
print i
data = parser.get('data', i).split()

#get contents of each dir at data[1]
for (path, dirs, files) in os.walk(data[1]): #gets all the dir paths
#print path, files
#I think I will need another for loop in order to get the user GID, UID and UNAME
for file in files:
file_out = os.path.join(path,file) #joins dir paths and file paths
print file_out
for file_put in file_out:
#write to remote host
s.put_r(file_out, file_out, preserve_mtime=True)
print (file_put)
print file_out
print data
except Exception, e:
print (str(e))


I am using configparser to create a configuration file. The config file has an unlimited amount of potential read paths from the local host. The local host needs to send and write the data to a RHEL6.10 box. The path structure from the local host needs to be mirrored on the remote host. Then the ownership of the file needs to be changed with pysftp.chown().



So I think I have the read structure down. The problem I am encountering is writing to the server given the directory path. It recursively looks the the given folder for any files and files in subdirectories. Then it has to write them. I plan on using pysftp.put_r to recursively write to the remote server.



Under def dir_search I am having trouble within my for structure.



Here is an example config:



[data]
ID0 = 1 C:UsersAdministratorDocuments /tmp 465 5000










share|improve this question






















  • put_r already uploads whole directory structure. Simply call it once for every path in parser['data']. No need for any walk and nested for loops.
    – Martin Prikryl
    Nov 10 at 7:49










  • Do you mind showing me? I am relatively new to Python. This is probably my fourth time using it.
    – Chris Zog
    Nov 12 at 19:15










  • So, one of my build requirements is to first get the files and their paths, then wait X seconds. This is defined in the config.ini file. I'm not sure what my boss's reasoning for it is, he is a programmer not me. One thing I ran into while trying to call pysftp.put_r() is AttributeError: 'module' object has no attribute 'put_r'
    – Chris Zog
    Nov 12 at 19:19










  • You have too many questions for a single post. With is Q&A site, not a support forum. So maybe you should start with a separate question on calling put_r with Minimal, Complete, and Verifiable example.
    – Martin Prikryl
    Nov 13 at 7:26

















up vote
-1
down vote

favorite
1












def srv_connect(USERNAME=parser.get('init', 'USERNAME'),
PASSWORD=parser.get('init', 'PASSWORD'),
HOST=parser.get('init', 'HOST')):
global s #making s a global variable to return
try:
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
s = pysftp.Connection(HOST, username=USERNAME, password=PASSWORD, cnopts=cnopts)
except Exception, e:
print("Failed to connect to " + HOST)
print (str(e))
finally:
return (s)

def dir_search(s):
try:
for i in parser['data']:
print i
data = parser.get('data', i).split()

#get contents of each dir at data[1]
for (path, dirs, files) in os.walk(data[1]): #gets all the dir paths
#print path, files
#I think I will need another for loop in order to get the user GID, UID and UNAME
for file in files:
file_out = os.path.join(path,file) #joins dir paths and file paths
print file_out
for file_put in file_out:
#write to remote host
s.put_r(file_out, file_out, preserve_mtime=True)
print (file_put)
print file_out
print data
except Exception, e:
print (str(e))


I am using configparser to create a configuration file. The config file has an unlimited amount of potential read paths from the local host. The local host needs to send and write the data to a RHEL6.10 box. The path structure from the local host needs to be mirrored on the remote host. Then the ownership of the file needs to be changed with pysftp.chown().



So I think I have the read structure down. The problem I am encountering is writing to the server given the directory path. It recursively looks the the given folder for any files and files in subdirectories. Then it has to write them. I plan on using pysftp.put_r to recursively write to the remote server.



Under def dir_search I am having trouble within my for structure.



Here is an example config:



[data]
ID0 = 1 C:UsersAdministratorDocuments /tmp 465 5000










share|improve this question






















  • put_r already uploads whole directory structure. Simply call it once for every path in parser['data']. No need for any walk and nested for loops.
    – Martin Prikryl
    Nov 10 at 7:49










  • Do you mind showing me? I am relatively new to Python. This is probably my fourth time using it.
    – Chris Zog
    Nov 12 at 19:15










  • So, one of my build requirements is to first get the files and their paths, then wait X seconds. This is defined in the config.ini file. I'm not sure what my boss's reasoning for it is, he is a programmer not me. One thing I ran into while trying to call pysftp.put_r() is AttributeError: 'module' object has no attribute 'put_r'
    – Chris Zog
    Nov 12 at 19:19










  • You have too many questions for a single post. With is Q&A site, not a support forum. So maybe you should start with a separate question on calling put_r with Minimal, Complete, and Verifiable example.
    – Martin Prikryl
    Nov 13 at 7:26















up vote
-1
down vote

favorite
1









up vote
-1
down vote

favorite
1






1





def srv_connect(USERNAME=parser.get('init', 'USERNAME'),
PASSWORD=parser.get('init', 'PASSWORD'),
HOST=parser.get('init', 'HOST')):
global s #making s a global variable to return
try:
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
s = pysftp.Connection(HOST, username=USERNAME, password=PASSWORD, cnopts=cnopts)
except Exception, e:
print("Failed to connect to " + HOST)
print (str(e))
finally:
return (s)

def dir_search(s):
try:
for i in parser['data']:
print i
data = parser.get('data', i).split()

#get contents of each dir at data[1]
for (path, dirs, files) in os.walk(data[1]): #gets all the dir paths
#print path, files
#I think I will need another for loop in order to get the user GID, UID and UNAME
for file in files:
file_out = os.path.join(path,file) #joins dir paths and file paths
print file_out
for file_put in file_out:
#write to remote host
s.put_r(file_out, file_out, preserve_mtime=True)
print (file_put)
print file_out
print data
except Exception, e:
print (str(e))


I am using configparser to create a configuration file. The config file has an unlimited amount of potential read paths from the local host. The local host needs to send and write the data to a RHEL6.10 box. The path structure from the local host needs to be mirrored on the remote host. Then the ownership of the file needs to be changed with pysftp.chown().



So I think I have the read structure down. The problem I am encountering is writing to the server given the directory path. It recursively looks the the given folder for any files and files in subdirectories. Then it has to write them. I plan on using pysftp.put_r to recursively write to the remote server.



Under def dir_search I am having trouble within my for structure.



Here is an example config:



[data]
ID0 = 1 C:UsersAdministratorDocuments /tmp 465 5000










share|improve this question













def srv_connect(USERNAME=parser.get('init', 'USERNAME'),
PASSWORD=parser.get('init', 'PASSWORD'),
HOST=parser.get('init', 'HOST')):
global s #making s a global variable to return
try:
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
s = pysftp.Connection(HOST, username=USERNAME, password=PASSWORD, cnopts=cnopts)
except Exception, e:
print("Failed to connect to " + HOST)
print (str(e))
finally:
return (s)

def dir_search(s):
try:
for i in parser['data']:
print i
data = parser.get('data', i).split()

#get contents of each dir at data[1]
for (path, dirs, files) in os.walk(data[1]): #gets all the dir paths
#print path, files
#I think I will need another for loop in order to get the user GID, UID and UNAME
for file in files:
file_out = os.path.join(path,file) #joins dir paths and file paths
print file_out
for file_put in file_out:
#write to remote host
s.put_r(file_out, file_out, preserve_mtime=True)
print (file_put)
print file_out
print data
except Exception, e:
print (str(e))


I am using configparser to create a configuration file. The config file has an unlimited amount of potential read paths from the local host. The local host needs to send and write the data to a RHEL6.10 box. The path structure from the local host needs to be mirrored on the remote host. Then the ownership of the file needs to be changed with pysftp.chown().



So I think I have the read structure down. The problem I am encountering is writing to the server given the directory path. It recursively looks the the given folder for any files and files in subdirectories. Then it has to write them. I plan on using pysftp.put_r to recursively write to the remote server.



Under def dir_search I am having trouble within my for structure.



Here is an example config:



[data]
ID0 = 1 C:UsersAdministratorDocuments /tmp 465 5000







python sftp pysftp






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 9 at 18:13









Chris Zog

13




13












  • put_r already uploads whole directory structure. Simply call it once for every path in parser['data']. No need for any walk and nested for loops.
    – Martin Prikryl
    Nov 10 at 7:49










  • Do you mind showing me? I am relatively new to Python. This is probably my fourth time using it.
    – Chris Zog
    Nov 12 at 19:15










  • So, one of my build requirements is to first get the files and their paths, then wait X seconds. This is defined in the config.ini file. I'm not sure what my boss's reasoning for it is, he is a programmer not me. One thing I ran into while trying to call pysftp.put_r() is AttributeError: 'module' object has no attribute 'put_r'
    – Chris Zog
    Nov 12 at 19:19










  • You have too many questions for a single post. With is Q&A site, not a support forum. So maybe you should start with a separate question on calling put_r with Minimal, Complete, and Verifiable example.
    – Martin Prikryl
    Nov 13 at 7:26




















  • put_r already uploads whole directory structure. Simply call it once for every path in parser['data']. No need for any walk and nested for loops.
    – Martin Prikryl
    Nov 10 at 7:49










  • Do you mind showing me? I am relatively new to Python. This is probably my fourth time using it.
    – Chris Zog
    Nov 12 at 19:15










  • So, one of my build requirements is to first get the files and their paths, then wait X seconds. This is defined in the config.ini file. I'm not sure what my boss's reasoning for it is, he is a programmer not me. One thing I ran into while trying to call pysftp.put_r() is AttributeError: 'module' object has no attribute 'put_r'
    – Chris Zog
    Nov 12 at 19:19










  • You have too many questions for a single post. With is Q&A site, not a support forum. So maybe you should start with a separate question on calling put_r with Minimal, Complete, and Verifiable example.
    – Martin Prikryl
    Nov 13 at 7:26


















put_r already uploads whole directory structure. Simply call it once for every path in parser['data']. No need for any walk and nested for loops.
– Martin Prikryl
Nov 10 at 7:49




put_r already uploads whole directory structure. Simply call it once for every path in parser['data']. No need for any walk and nested for loops.
– Martin Prikryl
Nov 10 at 7:49












Do you mind showing me? I am relatively new to Python. This is probably my fourth time using it.
– Chris Zog
Nov 12 at 19:15




Do you mind showing me? I am relatively new to Python. This is probably my fourth time using it.
– Chris Zog
Nov 12 at 19:15












So, one of my build requirements is to first get the files and their paths, then wait X seconds. This is defined in the config.ini file. I'm not sure what my boss's reasoning for it is, he is a programmer not me. One thing I ran into while trying to call pysftp.put_r() is AttributeError: 'module' object has no attribute 'put_r'
– Chris Zog
Nov 12 at 19:19




So, one of my build requirements is to first get the files and their paths, then wait X seconds. This is defined in the config.ini file. I'm not sure what my boss's reasoning for it is, he is a programmer not me. One thing I ran into while trying to call pysftp.put_r() is AttributeError: 'module' object has no attribute 'put_r'
– Chris Zog
Nov 12 at 19:19












You have too many questions for a single post. With is Q&A site, not a support forum. So maybe you should start with a separate question on calling put_r with Minimal, Complete, and Verifiable example.
– Martin Prikryl
Nov 13 at 7:26






You have too many questions for a single post. With is Q&A site, not a support forum. So maybe you should start with a separate question on calling put_r with Minimal, Complete, and Verifiable example.
– Martin Prikryl
Nov 13 at 7:26



















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53231252%2fwriting-windows-file-and-directory-path-to-linux-remote-server-in-python%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53231252%2fwriting-windows-file-and-directory-path-to-linux-remote-server-in-python%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)