Как исправить ошибку?

Python 2.7 Windows 7
=======================
# -*- coding: UTF-8 -*-

import re
import sys



try:

	in_m3u = str(sys.argv[1]);
	print ("Received input is : ", in_m3u)
except:
    print "Input 2 args as ./111.py input.m3u"
    

list = [] # Список с содкржимым входящего файла
list2 = []
namen_list=[]
new_list=[]


def udalenie_pust(input_file):
    for line in input_file.readlines():
        line = line.strip()
        if line == '':
	    print ""
            pass
        if line == '#EXTM3U':
	    print ""
            pass
        else:
            list.append(line + '\n')
    file.close()
    return list       

def full_dup():
    a = len(list)
    a1 = a
    i = 0
    while i < a-1:
        b = list[i]        
        f = [index for index,val in enumerate(list) if val==b ]
        print 'f',f
        print "b", b
        k=len(f)
        while k > 1:
            print k, f[k-1]
            try:
                list.pop(f[k-1])
            except:
                Exception
            k = k-1
        a = len(list)
        i = i + 1
        print a, i 
    return list 

def adr_dup():# Удаление дубликатов по адресу
    a = len(new_list)
    i = 0
    while i < a-1:
        b = new_list[i]  
        http = re.search('^http://', str(b))       
        if http != None:	
            f = [index for index,val in enumerate(new_list) if val==b ]
            k=len(f)  
            h=0
            while k > 1:
                #print "F:",f,'\n',"H:", h,'\n' "f[h]:", f[h],'\n' "list[f[h]-1]:", new_list[f[h]-1] ,'\n' "list[f[h]]:", new_list[f[h]] 
                new_list[f[h]] = ""
                new_list[f[h]-1] = ""
                f = [index for index,val in enumerate(new_list) if val==b ]
                k=len(f)  
                if k == 1:
                    pass
                else:
                    k = k-1
                #h=h+1

        a = len(new_list)
        i = i + 1
    return new_list


def nam_list():
    print "start create namen_list"
    a = len(list)
    a1 = a
    i = 0
    while i < a-1: # Создаём список из чистых имён каналов и добавляем каждую вторую пустую строку
        b = str(list[i])  
        findest1 = b.split(',')      
        namen=findest1[len(findest1)-1].strip()
        n = re.search('^#EXTINF', str(b))    
        if n:
            if str(namen) != ' ':
                findest1 = str(b).split(',')                
                nam=findest1[len(findest1)-1]
                namen = nam.strip()                
                namen_list.append(namen)
                namen_list.append('')
            else:
                pass
        i = i + 1 
 #   print namen_list, len(namen_list)
    return namen_list



    
 
def name_dup(): 

    a = len(list) # Количечтво в исходном списке   
    i = 0 # Счётчик для основного списка LIST
    while i < a-1:# Начинаеи перебирпть основной список          
        b=list[i] # Элемент из основного списка например #EXTINF:0, Первый   
        b1 = list[i+1]
        n=namen_list[i]
        f = [index for index,val in enumerate(namen_list) if val==n ]
        k=len(f) 
        if k > 1 and n !='':# Есть дубли
            #print "Дубль", f,k,n
            t=0
            while t <= k-1: # Работаем со списком дубликатов 
                #print "Добавляем дубль"
                #print "1", list[f[t]]
                pure_nam = list[f[t]].split(',')
                pure_nam1 = pure_nam[1].strip() 
                pure_nam2 = str(pure_nam[0])+','+str(pure_nam1)+'\n'
                #print "2", pure_nam2
                new_list.append(pure_nam2)
                new_list.append(list[f[t]+1])
                t=t+1
#            
#            #print "2", list[f[1]],list[f[1]+1]
        if k == 1 and n !='':
            #print "Один", list
            pure_nam = b.split(',')
	    #print "pure_nam", pure_nam 
            pure_nam1 = pure_nam[1].strip() 
            p_nam2 = str(pure_nam[0])+','+str(pure_nam1)+'\n'
            new_list.append(p_nam2)
            new_list.append(b1)

            
             
        i=i+1      
      
    return new_list            
            
            
        

    
def zapis_out_file(In_list):
    i_m3u = in_m3u.split('.m3u')[0]
    out_m3u = i_m3u+'_pure'+'.m3u'
    file1 = open(out_m3u, "w")
    a = len(In_list)
    print "Save In_list", a
 #   file1.write("#EXTM3U")
    i = 0
    while i <= a-1:
        file1.write(str(In_list[i]))
        i = i + 1       
    file1.close() 


	file = open(in_m3u, "r")        
	udalenie_pust(file)    
	nam_list()
	name_dup()
	adr_dup() 
	zapis_out_file(new_list)


Проверял на сайте codepad.org
Выдало это:
nput 2 args as ./111.py input.m3u
Traceback (most recent call last):
  Line 170, in <module>
    file = open(in_m3u, "r")        
NameError: name 'in_m3u' is not defined

========================================
Уважаемый xDimus.
Извините. Я только начал.
А как вписать название файла --- .m3u
  • Вопрос задан
  • 143 просмотра
Решения вопроса 2
@xDimus
Вы его с параметром запускаете? Он из него должен имя файла получить, если его нет то и переменная не определена
Ответ написан
in_m3u = str(sys.argv[1]) почитай что такое sys.argv
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы