В соответствии с моим требованием я хочу сопоставить два текстовых файла по строкам в Python на платформе Windows. например, у меня есть следующие текстовые файлы:Как сопоставить два простых текстовых файла по строкам с помощью Python
FILE1:
Меня зовут ххх
Команда выполнена успешно.
имя моей матери ий
Мой мобильный номер 12345
тяжелый грузовик врезался в здание в полночи
грузового автомобиля есть в способности красного яблоко
File2 :
Мой имя xxx
команда. успешно.
Имя моей матери
, что тяжелый грузовик это то, что врезался в здание
грузовой автомобиль ест яблоко на факультете
Извиняюсь за не достаточно ясно, так моя проблема в том, как я могу выровнять фильм сценария с его субтитрами, я пишу следующий код в Python, но этого недостаточно, чтобы получить выравнивание из двух текстовых файлов:
# Open file for reading in text mode (default mode)
f1 = open('F:/CONTRIBUTION 2017/SCRIPT-SUBTITLES CODES/Script Alignement Papers/f1.txt','r')
f2 = open('F:/CONTRIBUTION 2017/SCRIPT-SUBTITLES CODES/Script Alignement Papers/f2.txt','r')
#Print confirmation
# print("-----------------------------------")
#print("Comparing files ", " > " + fname1, " < " +fname2, sep='\n')
# print("-----------------------------------")
# Read the first line from the files
f1_line = f1.readline()
f2_line = f2.readline()
# Initialize counter for line number
line_no = 1
# Loop if either file1 or file2 has not reached EOF
while f1_line != '' or f2_line != '':
# Strip the leading whitespaces
f1_line = f1_line.rstrip()
f2_line = f2_line.rstrip()
# Compare the lines from both file
if f1_line != f2_line:
# If a line does not exist on file2 then mark the output with + sign
if f2_line == '' and f1_line != '':
print("=================================================================")
print("=================================================================")
print("line does not exist on File 2 ====================")
print("=================================================================")
print(">+", "Line-%d" % line_no, f1_line)
# otherwise output the line on file1 and mark it with > sign
elif f1_line != '':
print("=================================================================")
print("=================================================================")
print("otherwise output the line on file1 ====================")
print("=================================================================")
print(">", "Line-%d" % line_no, f1_line)
# If a line does not exist on file1 then mark the output with + sign
if f1_line == '' and f2_line != '':
print("=================================================================")
print("=================================================================")
print("=line does not exist on File 1 ====================")
print("=================================================================")
print("<+", "Line-%d" % line_no, f2_line)
# otherwise output the line on file2 and mark it with < sign
elif f2_line != '':
print("=================================================================")
print("=================================================================")
print("otherwise output the line on file2 ====================")
print("=================================================================")
print("<", "Line-%d" % line_no, f2_line)
# Print a blank line
print()
#Read the next line from the file
f1_line = f1.readline()
f2_line = f2.readline()
#Increment line counter
line_no += 1
# Close the files
f1.close()
f2.close()
Если кто-нибудь может помочь в этом, я был бы очень благодарен.
Если вы просто хотите проверить, идентичны ли файлы, то предоставленных ответов должно быть достаточно. Для чего-то более сложного я предлагаю вам взглянуть на https://docs.python.org/3.5/library/difflib.html –
Каким должен быть результат этого сравнения? Каков ожидаемый результат здесь? –
Похоже, вы хотите, чтобы мы написали вам код. Хотя многие пользователи готовы создавать код для кодера, терпящего бедствие, они обычно помогают только тогда, когда плакат уже попытался решить проблему самостоятельно.Хорошим способом продемонстрировать это усилие является включение кода, который вы написали до сих пор, пример ввода (если есть), ожидаемый вывод и вывод, который вы фактически получаете (вывод, трассировка и т. Д.). Чем больше деталей вы предоставляете, тем больше ответов вы получите. Проверьте [FAQ] (http://stackoverflow.com/tour) и [Как спросить] (http://stackoverflow.com/questions/how-to-ask). – TigerhawkT3