Мне нужно понизить версию Python скрипта, написанного для версии 3.7.1, до версии 3.6, и я изо всех сил пытаюсь заставить его работать.
Вот сценарий:
#!/usr/bin/env python3
import fileinput
import os
def replace_function(entries):
with fileinput.FileInput(entries, inplace=True) as file:
for line in file:
line = line.replace('OLD', 'NEW')
print(line, end='')
def retrieve_files_function(folder):
return os.scandir("work\\" + folder)
replace_function(retrieve_files_function('function'))
replace_function(retrieve_files_function('package'))
И вот stacktrace:
Traceback (most recent call last):
File "C:/Users/me/PycharmProjects/replacer/replaces", line 17, in <module>
replace_function(retrieve_files_function('function'))
File "C:/Users/me/PycharmProjects/replacer/replaces", line 8, in replace_function
for line in file:
File "C:\Users\me\AppData\Local\Programs\Python\Python36\lib\fileinput.py", line 250, in __next__
line = self._readline()
File "C:\Users\me\AppData\Local\Programs\Python\Python36\lib\fileinput.py", line 331, in _readline
self._filename + (self._backup or ".bak"))
TypeError: unsupported operand type(s) for +: 'nt.DirEntry' and 'str'
Думаю, это будет первый из нескольких обходных путей. Спасибо!