Форум сайта python.su
2
Добрый день.
Проверил наличие файла:
if os.path.exists('file.txt')
if os.path.exists('file.txt'): os.close('file.txt') os.remove('file.txt')
if os.path.exists('file.txt'): r = open('file.txt') r.close() os.remove('file.txt')
Отредактировано Ubhra (Март 4, 2013 08:18:08)
Офлайн
857
Ubhraкодировку не проверяют, её знают и указывают при открытии
Как проверить кодировку файла utf-8, а так же:
1 строка целое число 1000> x > 100
2 строка целое число 5000 > x > 500
3 число логическое true или false.
Офлайн
2
Насчет кодировки прочел что по умолчанию сохраняет в utf-8, что вполне приемлемо.
А вот с проверкой строк проблема.
В общем вот так как то:
if os.path.exists('file.txt'): r_i = open('file.txt') ......................... ......................... r_i.close() # os.remove('file.txt') else: open('file.txt', "w")
Офлайн
36
if os.path.exists('file.txt'): with open("file.txt", "rt", encoding="utf-8") as f: try: if 100 < int(next(f)) < 1000: if 500 < int(next(f)) < 5000: if next(f).strip() in ("False", "True"): # все условия выполнены except ValueError: # в строке не число else: ...
Офлайн
2
Не проходит
if os.path.exists('file.txt'): with open("file.txt", "rt", encoding="utf-8") as f:
except ValueError:
Офлайн
2
Тут результат print('yes')
import os if os.path.exists('file.txt'): with open("file.txt", "rt", encoding="utf-8") as f_l: try: print('yes') except ValueError: print('error') else: print('no')
import os if os.path.exists('file.txt'): with open("file.txt", "rt", encoding="utf-8") as f_l: try: if 100 < int(next(f_l)) < 1000: if 500 < int(next(f_l)) < 5000: if 600 < int(next(f_l)) < 5000: print('yes') except ValueError: print('error') else: print('no')
Отредактировано Ubhra (Март 4, 2013 12:00:48)
Офлайн
568
При той же структуре файла должен написать error
Офлайн
568
А это содержимое файла:
300 - A
700 - B
True -C
import os if os.path.exists('file.txt'): with open("file.txt", "rt", encoding="utf-8") as f_l: try: if 100 < int(next(f_l)) < 1000: #A if 500 < int(next(f_l)) < 5000: #B if 600 < int(next(f_l)) < 5000: #C print('yes') except ValueError: print('error') else: print('no')
Офлайн
2
Офлайн
568
И? все работает
Офлайн