Guest User

Untitled

a guest
Sep 17th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. Misleading global variable
  2. import os
  3. import zipfile
  4. import ConfigParser
  5. import ftputil
  6. import shutil
  7. import tempfile
  8. import time
  9.  
  10.  
  11. def download_files():
  12. # Alvin: Think of a better variable name
  13. file_list = ftp.listdir(downloads)
  14. for filename in file_list:
  15. # Alvin should be ftp.path.join
  16. source = os.path.join(downloads, filename)
  17. target = os.path.join(temp_path, filename)
  18. ftp.download(source, target)
  19.  
  20. def zipping_files():
  21. dirlist = os.listdir(temp_path)
  22. global filepath
  23. filepath = os.path.join(temp_path, 'part2b.zip')
  24. # Alvin: find better name for zip_name
  25. global zip_name
  26. zip_name = zipfile.ZipFile(filepath, 'w')
  27. # Alvin: try not to use built-in names as variable names
  28. for list in dirlist:
  29. # Alvin: file_path, absolute_path
  30. get_file = os.path.join(temp_path, list)
  31. zip_name.write(get_file, 'part2b\' + list)
  32.  
  33. def upload_files():
  34. ftp.upload(filepath, uploads + '/part2b.zip')
  35.  
  36. def main():
  37. # Alvin: Do not use globals.
  38. # Alvin: remove useless and above all misleading comments
  39.  
  40. global temp_path
  41. temp_path = tempfile.mkdtemp()
  42.  
  43.  
  44. config = ConfigParser.ConfigParser()
  45. config.readfp(open('config.ini'))
  46. server = config.get('main', 'Server')
  47. username = config.get('main', 'Username')
  48. password = config.get('main', 'Password')
  49.  
  50. global uploads
  51. uploads = config.get('main', 'Upload folder')
  52.  
  53. global downloads
  54. downloads = config.get('main', 'Download folder')
  55.  
  56. #connect to ftp
  57. global ftp
  58. # Alvin: open ftp connection when you only need it.
  59. ftp = ftputil.FTPHost(server, username, password)
  60.  
  61. try:
  62. download_files()
  63. zipping_files()
  64. upload_files()
  65.  
  66. finally:
  67. ftp.close()
  68. zip_name.close()
  69. shutil.rmtree(temp_path, 'true')
  70.  
  71. print "Successfully transferred files."
  72. print ""
  73. print "This will close in 5 seconds. . . . ."
  74. time.sleep(5)
  75.  
  76. if __name__ == '__main__':
  77. main()
  78.  
  79. try:
  80. download_files(downloads, temp_path)
  81. zipping_files(temp_path)
  82. upload_files(ftp)
  83.  
  84. def download_files(downloads, temp_path):
  85.  
  86. def zipping_files(temp_path):
  87.  
  88. def upload_files(ftp):
  89.  
  90. import os
  91. import zipfile
  92. import ConfigParser
  93. import ftputil
  94. import shutil
  95. import tempfile
  96. import time
  97.  
  98.  
  99. def download_files(downloads, temp_path, server, username, password):
  100. ftp = ftputil.FTPHost(server, username, password)
  101. file_list = ftp.listdir(downloads)
  102. for filename in file_list:
  103. source = os.path.join(downloads, filename)
  104. target = os.path.join(temp_path, filename)
  105. ftp.download(source, target)
  106. ftp.close()
  107.  
  108. def zipping_files(temp_path):
  109. file_list = os.listdir(temp_path)
  110. filepath = os.path.join(temp_path, 'part2b.zip')
  111. zip_file = zipfile.ZipFile(filepath, 'w')
  112. for filename in file_list:
  113. file_path = os.path.join(temp_path, filename)
  114. zip_file.write(file_path, 'part2b\' + filename)
  115. zip_file.close()
  116.  
  117. def upload_files(uploads, temp_path, server, username, password):
  118. ftp = ftputil.FTPHost(server, username, password)
  119. filepath = os.path.join(temp_path, 'part2b.zip')
  120. ftp.upload(filepath, uploads + '/part2b.zip')
  121. ftp.close()
  122.  
  123. def main():
  124.  
  125. temp_path = tempfile.mkdtemp()
  126.  
  127. config = ConfigParser.ConfigParser()
  128. config.readfp(open('config.ini'))
  129. server = config.get('main', 'Server')
  130. username = config.get('main', 'Username')
  131. password = config.get('main', 'Password')
  132. uploads = config.get('main', 'Upload folder')
  133. downloads = config.get('main', 'Download folder')
  134.  
  135. try:
  136. download_files(downloads, temp_path, server, username, password)
  137. zipping_files(temp_path)
  138. upload_files(uploads, temp_path, server, username, password)
  139.  
  140. finally:
  141. shutil.rmtree(temp_path, 'true')
  142.  
  143. print "Successfully transferred files."
  144. print ""
  145. print "This will close in 5 seconds. . . . ."
  146. time.sleep(5)
  147.  
  148. if __name__ == '__main__':
  149. main()
Add Comment
Please, Sign In to add comment