2016-03-01 4 views
-6

Как я могу разрешить пользователю самим именем «copied_holter.ecg»? Я дал это имя, но хочу, чтобы пользователь выбирал все, что захочет.Разрешить пользователю указывать новый файл

class MyParser(argparse.ArgumentParser): 
def error(self, message): 
    sys.stderr.write('error: %s\n' % message) 
    self.print_help() 
    sys.exit(2) 



parser = MyParser(util_help) 
parser.add_argument('filename', help='The full path/to/holter_file that you would like to parse.', action="store") 
parser.add_argument('packet_start', help='The offset location of the start packet ID in base 10 decimal', action="store", type = int) 
parser.add_argument('packet_end', help='The offset location of the end packet ID in base 10 decimal', action = "store", type = int) 
parser.add_argument('new_filename', help='The name of the new file with the copied holter data chosen by user.', action = "store") 
args = parser.parse_args() 

start = args.packet_start 
end = args.packet_end 

if start % 5 != 0: 
    start = int(5*round(float(start)/5)) 
if end % 5 != 0: 
    end = int(5*round(float(end)/5)) 

try: 
    print("Beginning copying of holter data...") 

# Output the specific holter data 
output_file = open(new_filename+".ecg", 'w') 
+0

Этот код ничего нам не говорит .... – Seekheart

ответ

-1

все, что вам нужно сделать, это на линии

output_file = open(file_name+".ecg", "w") 

заменить его

output_file = open(args.new_filename, 'w') 
1

Анализировать file_name из Arg, а затем использовать что-то вроде:

output_file = open(file_name+".ecg", "w") 
+0

это не pythonic, и не говоря уже о том, что вы предполагаете, что каждый файл будет заканчиваться на '.ecg' – Seekheart

+1

, почему это не пифонический ??? Я думал, что он хочет сохранить этот файл с таким же постфиксником, как и исходный суффикс – sunny

+0

. Пути pythonic используют 'with', потому что он откроет и закроет файл для вас, и это будет гораздо более понятным. Также плохое предположение, потому что ОП заявлял, что хочет чего-то для имени. – Seekheart