file.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import os
  2. import shutil
  3. poem = \
  4. '''There was a young lady named Bright,
  5. Whose speed was far faster than light;
  6. She started one day
  7. In a relative way,
  8. And returned on the previous night.
  9. '''
  10. text = """
  11. Красивое лучше, чем уродливое.
  12. Явное лучше, чем неявное.
  13. Простое лучше, чем сложное.
  14. Сложное лучше, чем запутанное.
  15. Плоское лучше, чем вложенное.
  16. Разреженное лучше, чем плотное.
  17. Читаемость имеет значение.
  18. Особые случаи не настолько особые, чтобы нарушать правила.
  19. При этом практичность важнее безупречности.
  20. Ошибки никогда не должны замалчиваться.
  21. Если они не замалчиваются явно.
  22. Встретив двусмысленность, отбрось искушение угадать.
  23. Должен существовать один и, желательно, только один очевидный способ сделать это.
  24. Хотя он поначалу может быть и не очевиден, если вы не голландец [^1].
  25. Сейчас лучше, чем никогда.
  26. Хотя никогда зачастую лучше, чем прямо сейчас.
  27. Если реализацию сложно объяснить — идея плоха.
  28. Если реализацию легко объяснить — идея, возможно, хороша.
  29. Пространства имён — отличная штука! Будем делать их больше!
  30. """
  31. # print в файл
  32. def test_1():
  33. my_file = open('1.txt', 'wt')
  34. print(poem, file=my_file)
  35. my_file.write(poem)
  36. my_file.close()
  37. def write_to_file(file_name: str, data: str):
  38. with open(file_name, 'w') as file:
  39. file.write(data)
  40. # Чтение файла фрагментами
  41. def read_from_file(file_name: str):
  42. with open(file_name, 'r') as file:
  43. dzen = ''
  44. chunk = 100
  45. while True:
  46. fragment = file.read(chunk)
  47. print(len(fragment))
  48. if not fragment:
  49. break
  50. else:
  51. dzen += fragment
  52. print(dzen)
  53. # Чтение файла построчно
  54. def read_line_1(file_name: str):
  55. with open(file_name, 'r') as file:
  56. dzen = ''
  57. while True:
  58. line = file.readline()
  59. if not line:
  60. break
  61. else:
  62. dzen += line
  63. print(dzen)
  64. # Чтение файла построчно. Упрощенный вариант.
  65. def read_line_2(file_name: str):
  66. with open(file_name, 'r') as file:
  67. dzen = ''
  68. for line in file:
  69. dzen += line
  70. print(dzen)
  71. # Создание бинарного файла
  72. def generate_bin_file():
  73. bdata = bytes(range(0, 256))
  74. with open('bin_file.txt', 'wb') as file:
  75. file.write(bdata)
  76. # В функции seek(offset, origin) второй аргумент origin
  77. # определяет начальную позицию для считывания
  78. def file_seek(file_name: str):
  79. with open(file_name, 'rb') as file:
  80. # print(file.tell())
  81. # print(file.seek(10))
  82. # print(file.tell())
  83. file.seek(255)
  84. bdata = file.read()
  85. print(len(bdata))
  86. print(bdata)
  87. #
  88. def test_os():
  89. # Существование файла
  90. print(os.path.exists('ooo.txt'))
  91. print(os.path.exists('sadfasdf.awef'))
  92. print(os.path.exists('.'))
  93. print(os.path.exists('..'))
  94. # Проверить тип
  95. print(os.path.isfile('file.py'))
  96. print(os.path.isdir('.'))
  97. # Копирование файлов
  98. def test_copy():
  99. shutil.copy('file_1.txt', 'file_2.txt')
  100. os.rename('file_1.txt', 'file_2.txt')
  101. # write_to_file('python_dzen.txt', text)
  102. # read_from_file('python_dzen.txt')
  103. # read_line_2('python_dzen.txt')
  104. # generate_bin_file()
  105. # file_seek('bin_file.txt')
  106. test_os()