1. Python / Говнокод #27206

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    import fnmatch,os,datetime,time,re,shutil,sys 
    	
    def find(pattern, startdir=os.curdir): 
    		for (thisDir, subsHere, filesHere) in os.walk(startdir): # 
    			for name in subsHere + filesHere:
    				if fnmatch.fnmatch(name,pattern): 
    					fullpath = os.path.join(thisDir,name)
    					yield fullpath 
    
    def timeconvert(x):
    	convert  = time.strftime("%Y-%m-%d",time.localtime(os.path.getctime(x)))   
    	return   convert
    
    print("select action: delete: delete files: copy: copy files: view: view files")
    action = input(" ")
    
    if action == "copy":
        print("inter path")
        dest = input(" ") 
    
    else:
        print ("inter date")
        cursive = input("")
        optime  = re.search('20[0-12]\d{1,2}.\d{1,2}',cursive)
    
    if optime == None:
        print ('error')
    else:    
    	if __name__== '__main__':
    		import sys 
    		namepattern,startdir, = sys.argv[1],sys.argv[2]
            for name in find(namepattern,startdir): 
            
    		
              
    		  if not  str(cursive) <= timeconvert(name):   
                if action == 'copy':
                    shutil.copy(name, dest)
                
    			elif action == 'delete':
                    os.remove(name)
    			  
                elif  action == "view":
                   print(name + timeconvert(name))
                
    			else:
                    print ('error')

    Я по сусекам метён,
    По коробам скребён,
    На сыром масле мешен,
    На окошке стужен;
    Я от дедушки ушёл,
    Я от бабушки ушёл,
    И от тебя убегу.

    Madhouse_camomile, 11 Января 2021

    Комментарии (0)
  2. Python / Говнокод #27192

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    board = [" ", " ", " "], \
            [" ", " ", " "], \
            [" ", " ", " "]
    
    i = 1
    win = True
    place_chek = True
    
    
    def show():
        print("---------")
        print("|" + board[0][0] + "  " + board[0][1] + "  " + board[0][2] + "|")
        print("|" + board[1][0] + "  " + board[1][1] + "  " + board[1][2] + "|")
        print("|" + board[2][0] + "  " + board[2][1] + "  " + board[2][2] + "|")
        print("---------")
    
    
    def move(i):
        if i % 2 == 0:
            return "X"
        else:
            return "0"
    
    
    def choise(x, y):
        board[x][y] = move(i)
    
    
    def repeat(x, y):
        global i
        global place_chek
        if board[x][y] == "0":
            print()
            print("Choose another location")
            print()
            place_chek = False
    
        elif board[x][y] == "X":
            print()
            print("Choose another location")
            print()
            place_chek = False
    
        elif board[x][y] == " ":
            i = i + 1
            place_chek = True
    
    
    def win_check():
        global win
        if board[0][0] == board[0][1] == board[0][2] == "X" or \
                board[1][0] == board[1][1] == board[1][2] == "X" or \
                board[2][0] == board[2][1] == board[2][2] == "X" or \
                board[0][0] == board[1][0] == board[2][0] == "X" or \
                board[0][1] == board[1][1] == board[2][1] == "X" or \
                board[0][2] == board[1][2] == board[2][2] == "X" or \
                board[0][0] == board[1][1] == board[2][2] == "X" or \
                board[0][2] == board[1][1] == board[2][0] == "X":
            print("X won")
            win = False
    
        elif board[0][0] == board[0][1] == board[0][2] == "0" or \
                board[1][0] == board[1][1] == board[1][2] == "0" or \
                board[2][0] == board[2][1] == board[2][2] == "0" or \
                board[0][0] == board[1][0] == board[2][0] == "0" or \
                board[0][1] == board[1][1] == board[2][1] == "0" or \
                board[0][2] == board[1][2] == board[2][2] == "0" or \
                board[0][0] == board[1][1] == board[2][2] == "0" or \
                board[0][2] == board[1][1] == board[2][0] == "0":
            print("0 won")
            win = False
    
    
    show()  # first time show
    
    while win:
        x, y = input("Enter the coordinates: ").split()
        repeat(int(x) - 1, int(y) - 1)
        if place_chek:
            choise(int(x) - 1, int(y) - 1)
        show()
        win_check()

    Крестики нолики на питоне. Самый большой позор это способ определение победы, не смог ничего придумать и сделал такой позор

    warzon131, 03 Января 2021

    Комментарии (63)
  3. Python / Говнокод #27167

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    class Metapetuh(type):
        def __subclasscheck__(cls, C):
            return True
        def __instancecheck__(self, other):
            return True
    
    
    class Petuh(metaclass=Metapetuh):
        pass
    
    
    issubclass(object, Petuh)  # True
    isinstance(42, Petuh)      # True

    Мы зашкварили весь «Питон», и теперь все классы в нём — петухи.

    По просьбам трудящихся: https://govnokod.ru/27166#comment602776.

    gost, 19 Декабря 2020

    Комментарии (10)
  4. Python / Говнокод #27161

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    from playsound import *
    import tkinter
    from tkinter import *
    import tkinter as tk
    from tkinter import ttk
    import getpass
    import sys
    import os
    import os.path
    import pyautogui
    from time import sleep

    https://habr.com/post/532684/
    > Написание WinLocker'а на Python
    > И всем привет братва, с вами я, Геймер Дисклеймер. Как вы думаете, чем я занимался 2 дня подряд? Нет, я не в доту рубился (и вам не советую, раз уж вы себя программистами называете). Я подготавливал материал для Хабра. А точнее, создавал винлокер. И нет, я его не скоммуниздил украл у кого-то, а сам создавал его с нуля. И сегодня я научу вас его создавать. И да, если вы дисклеймер так и не прочитали, то ни в коем случае не используйте этот код во вред другим! Ну ладно, без лишних слов, погнали!

    gost, 12 Декабря 2020

    Комментарии (111)
  5. Python / Говнокод #27150

    −11

    1. 1
    print('HELLO')

    ОЧЕНЬ СЛОЖНЫЙ КОД

    Atom, 04 Декабря 2020

    Комментарии (56)
  6. Python / Говнокод #27147

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #Ide для япа
    
    
    code = input('Ваш код: ')
    
    if code = "print('text')
          print('text')

    Atom, 03 Декабря 2020

    Комментарии (13)
  7. Python / Говнокод #27117

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    #Я новичок в питоне, учусь буквально 2 недели. Это моя первая программа - типа банкомат, 
    #которую показал для примера учитель в очень упрощенном варианте, а я уже заинтересовался этим и стал улучшать её. 
    
    x=input('Чтобы зарегистрироваться, введите логин.\n' )
    y=input('Придумайте пароль.\n')
    login=x
    password=y
    print('Вы успешно зарегистрировались!')
    print('__________________________________________________________________________________________________________________')
    print('__________________________________________________________________________________________________________________')
    print('Войдите в систему, чтобы получить доступ ко всем функциям.')
    log=(input("Введите логин:\n"))
    pas=(input("Введите пароль:\n"))
    if((log==login)and(pas == password)):
    	balance=0
    	print('__________________________________________________________________________________________________________________')
    	print('__________________________________________________________________________________________________________________')
    	print("Вход выполнен успешно! У вас на счету",balance,"р.")
    	while 1:
    		print('__________________________________________________________________________________________________________________')
    		print('__________________________________________________________________________________________________________________')
    		print("Введите 1, чтобы пополнить счет, 2, чтобы снять, 3, чтобы выйти из аккаунта, и 4, чтобы узнать состояние счета.")
    		s=int(input('(Далее - Enter.)\n'))
    		if(s==1):
    			sum=int(input("На сколько вы хотите пополнить счет? (Далее - Enter.)\n"))
    			balance=balance+sum
    			print("Операция проведена успешно! На Вашем счету",balance,'р.')
    		if(s==2):
    			print("Сколько вы желаете снять со счета?")
    			sum=int(input('(Далее - Enter.)\n'))
    			if (sum>balance):
    				print('__________________________________________________________________________________________________________________')
    				print('__________________________________________________________________________________________________________________')
    				print("На счете недостаточно средств. Попробуйте ввести меньшее значение.")
    			else:
    				balance=balance-sum
    				print("Средства сняты со счета. Остаток:",balance,"р.")
    		if(s==3):
    			print('__________________________________________________________________________________________________________________')
    			print('__________________________________________________________________________________________________________________')
    			print('Вы вышли из аккаунта.') 
    			raise SystemExit
    		if(s==4):
    			print('__________________________________________________________________________________________________________________')
    			print('__________________________________________________________________________________________________________________')
    			print('На вашем счету',balance,'р.')
    if((log!= login)or(pas!= password)):
    	count=4
    	while ((log!=login)or(pas!=password)):
    		count=count-1
    		print("Неправильно введён логин или пароль. Осталось попыток входа:", count)
    		log=(input("Введите логин:\n"))
    		pas=(input("Введите пароль:\n"))	
    		if ((count < 2)and((log!=login)or(pas!=password))):
    			print('Вход заблокирован в связи с ошибкой при входе.')
    			break
    if ((log ==login)and(pas==password)):
    	
    	balance=0
    	print('__________________________________________________________________________________________________________________')
    	print('__________________________________________________________________________________________________________________')
    	print("Вход выполнен успешно! У вас на счету",balance,"р.")
    	while ((balance > -1)):
    		print('__________________________________________________________________________________________________________________')
    		print('__________________________________________________________________________________________________________________')
    		print('Введите 1, чтобы пополнить счет, 2, чтобы снять, 3, чтобы выйти из аккаунта, и 4, для того чтобы узнать состояние счета.')
    		s=int(input('(Далее - Enter.)\n'))
    		if(s==1):
    			sum=int(input("На сколько вы хотите пополнить счет?\n"))
    			balance=balance+sum
    			print("Операция проведена успешно! На Вашем счету",balance,'р.')
    		if(s==2):
    			print("Сколько вы желаете снять со счета?")
    			sum=int(input('(Далее - Enter.)\n'))
    			if (sum>balance):
    				print("На счете недостаточно средств. Попробуйте ввести меньшее значение.")
    			else:
    				balance=balance-sum
    				print("Средства сняты со счета. Остаток:",balance,"р.")
    		if(s==3):
    			print('__________________________________________________________________________________________________________________')
    			print('__________________________________________________________________________________________________________________')
    			print('Вы вышли из аккаунта.')
    			raise SystemExit
    		if(s==4):
    			print('__________________________________________________________________________________________________________________')
    			print('__________________________________________________________________________________________________________________')
    			print('На вашем счету',balance,'р.')

    govnokoder7, 18 Ноября 2020

    Комментарии (36)
  8. Python / Говнокод #27113

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    In order to fund the development work on speeding CPython by a factor of five, something like $2M will be required.
    This seems like a sizeable sum, but compared to the amount of money spent on Python development and the 
    cost of running Python applications, it is quite a modest sum.
    
    ---
    
    The overall aim is to speed up CPython by a factor of (approximately) five. We aim to do this in four distinct stages, 
    each stage increasing the speed of CPython by (approximately) 50%.
    
    1.5**4 ≈ 5
    
    ---
    
    The interpreter will adapt to types and values during execution, exploiting [b]type stability[/b] in the program
    
    ---
    
    Improved performance for [b]integers of less than one machine word[/b].
    Improved peformance for [b]binary operators[/b].
    
    ---
    
    Simple "JIT" compiler for small regions. Compile small regions of specialized code, using a relatively simple, fast compiler.
    Extend regions for compilation. Enhance compiler to generate [b]superior machine code[/b].

    питонисты готовят новую версию интерпретатора с революционной фичей - возможностью отъема денег у населения. Ожидается, что нововведение позволит языку быстро заработать очки на рынке пускания пыли в глаза.

    https://github.com/markshannon/faster-cpython

    Fike, 13 Ноября 2020

    Комментарии (65)
  9. Python / Говнокод #27094

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    #Это калькулятор
    t=input("Введите колличество чисел (2 или 3): ")
    if t == '3':
    	one=float(input("Введите первое число: "))
    	two=float(input("Введите второе число: "))
    	three=float(input("Введите третье число: "))
    	n=input("Введите первый знак: ")
    	if n != '+' and n != '-' and n != '*' and n != '/' :
    		print("Вы написали что-то неправильно")
    	else:
    		m=input("Введите второй знак: ")
    		if m != '+' and m != '-' and m != '*' and m != '/' :
    			print("Вы написали что-то неправильно")
    		else:
    			if n == '+':
    				if m == '+':
    					rez=one+two+three
    					print(rez)
    				elif m == '-':
    					rez=one+two-three
    					print(rez)
    				elif m == '*':
    					rez=one+two*three
    					print(rez)
    				elif m == '/':
    					rez=one+two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			elif n == '-':
    				if m == '+':
    					rez=one-two+three
    					print(rez)
    				elif m == '-':
    					rez=one-two-three
    					print(rez)
    				elif m == '*':
    					rez=one-two*three
    					print(rez)
    				elif m == '/':
    					rez=one-two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			elif n == '*':
    				if m == '+':
    					rez=one*two+three
    					print(rez)
    				elif m == '-':
    					rez=one*two-three
    					print(rez)
    				elif m == '*':
    					rez=one*two*three
    					print(rez)
    				elif m == '/':
    					rez=one*two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			elif n == '/':
    				if m == '+':
    					rez=one/two+three
    					print(rez)
    				elif m == '-':
    					rez=one/two-three
    					print(rez)
    				elif m == '*':
    					rez=one/two*three
    					print(rez)
    				elif m == '/':
    					rez=one/two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			else:
    				print("Вы написали что-то неправильно")
    elif t == '2':
    	z=input("Введите знак: ")
    	if z != '+' and z != '-' and z != '*' and z != '/' :
    		print("Вы написали что-то неправильно")
    	else:
    		one=float(input("Введите первое число: "))
    		two=float(input("Введите второе число: "))
    		if z == '+':
    			rez=one+two
    			print(rez)
    		elif z == '-':
    			rez=one-two
    			print(rez)
    		elif z == '*':
    			rez=one*two
    			print(rez)
    		elif z == '/':
    			rez=one/two
    			print(rez)
    		else:
    			print("Вы написали что-то неправильно")
    else :
    	print("Вы написали что-то неправильно")

    Как можно сократить говнокод? Просто интересно... Спасибо)

    ilyaclover000, 08 Ноября 2020

    Комментарии (49)
  10. Python / Говнокод #27075

    0

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    for course_id in COURSES: #конфиги для слабаков, реальные пацаны хардкодят константы
            participants = {}
            print(f'Downloading course {course_id}...')
            assignments = M.get_modules(course_id, 'assign')
            captions = {item['instance'] : item['name'] for item in assignments}
            rawsubs_per_assignment = M.get_submissions(captions.keys())
            files = []
            print('\tParsing assignments... ',end='')
            for i,assign in ProgressBar.each(rawsubs_per_assignment, length=50, donefmt='[OK]\n', errorfmt='[FAIL]\n'):
                #самописный прогресс-бар. В скрипте, который 90% времени запускается как демон.
                assign_id = assign['assignmentid']
                if assign_id not in participants:
                    lst = M.list_participants(assign_id)
                    participants[assign_id] = {i['id'] : i['fullname'] for i in lst}
                for rs in assign['submissions']:
                    subfiles = M.get_submission_files(rs)
                    for sf in subfiles:
                        f = StoredFile( #самописный псевдо-ORM
                            id = None,
                            url = sf['fileurl'],
                            filename = sf['filename'],
                            downloaded = False,
                            size = sf['filesize'],
                            mimetype = sf['mimetype'],
                            timestamp = sf['timemodified'],
                            course = course_id,
                            instance = assign_id,
                            submission = rs['id'],
                            userid = rs['userid'],
                            username = participants[assign_id][rs['userid']])
                        files.append(f)
            print('\tTotal of {0} assignments and {1} files.'.format(len(participants), len(files)))
            print('\tUpdating database... ', end='')
            with DB:
                for i,f in ProgressBar.each(files, captionfunc = (lambda f:f.filename),
                    length=25, valuefmt='{ratio:.0%} ', donefmt='[OK]\n', errorfmt='[FAIL]\n'):
                    DB.update_file(f) #execute_many()? зачем? И так сойдёт.
        files_to_download = list(DB.get_nonready_files())
        if not files_to_download:
            print('All files are up to date.')
        else:
            ok_count = 0
            error_count = 0
            print('Downloading missing files... ',end='')
            for i,f in ProgressBar.each(files_to_download,
                captionfunc = (lambda f: f'[{error_count} errors] {f.filename}'),
                length=25, valuefmt='{ratio:4.0%} ', donefmt='[OK]\n', errorfmt='[FAIL]\n'):
                #исчо один прогрессбар
                path = localpath(f)
                dir = os.path.dirname(path)
                os.makedirs(dir, exist_ok = True)
                if not verify(f):
                    try:
                        with open(path, "wb") as dest:
                            #зачем проверять размер скачиваемого файла или наличие контента?
                            source = M.get_download_fileobj(f.url) 
                            shutil.copyfileobj(source, dest)
                        DB.mark_downloaded(f)
                    except:
                        error_count += 1
                    else:
                        ok_count += 1
                else:
                    ok_count += 1
            if error_count > 0:
                print(f'{error_count} files failed to download!')
        comparisons = list(DB.get_files_to_match())
        if comparisons:
            print('Matching non-compared files... ',end='')
            log = open('errors.txt', 'wt', encoding='utf-8') #logging для слабаков
            for i,(f1,f2) in ProgressBar.each(comparisons, length=25, valuefmt='{pos}/{max}', donefmt='[OK]\n', errorfmt='[FAIL]\n'):
                #оптимизировать цикл, чтобы не читать один и тот же файл по 50 раз? Нафиг, работает же.
                path1, path2 = localpath(f1), localpath(f2)
                ok = True
                if not verify(f1):
                    ok = False
                    DB.mark_downloaded(f1, False)
                if not verify(f2):
                    ok = False
                    DB.mark_downloaded(f2, False)
                if ok:
                    content1, content2 = None, None
                    try:
                        content1 = extract_content(path1)
                        content2 = extract_content(path2)
                        similarity = compare_content(content1, content2)
                    except Exception as E:
                        if content1 is None:
                            log.write(path1+'\n')
                        elif content2 is None:
                            log.write(path1+'\n')
                        else:
                            log.write('Comparison error!\n')
                        log.write(str(E)+'\n')
                    else:
                        DB.save_diff(f1, f2, similarity)
                    finally: #пусть сборщик мусора порадуется
                        del content1
                        del content2
            log.close()

    Написал тут скрипт, самому стыдно.
    Но работает.

    Vindicar, 02 Ноября 2020

    Комментарии (15)