Dmitry Telenkov vor 1 Jahr
Ursprung
Commit
2d39b535f8
6 geänderte Dateien mit 212 neuen und 0 gelöschten Zeilen
  1. 13 0
      exer/1.txt
  2. BIN
      exer/bin_file.txt
  3. 129 0
      exer/file.py
  4. 37 0
      exer/proc.py
  5. 20 0
      exer/python_dzen.txt
  6. 13 0
      tmp/tmp.py

+ 13 - 0
exer/1.txt

@@ -0,0 +1,13 @@
+There was a young lady named Bright,
+    Whose speed was far faster than light;
+    She started one day
+    In a relative way,
+    And returned on the previous night.
+ 
+
+There was a young lady named Bright,
+    Whose speed was far faster than light;
+    She started one day
+    In a relative way,
+    And returned on the previous night.
+ 

BIN
exer/bin_file.txt


+ 129 - 0
exer/file.py

@@ -0,0 +1,129 @@
+import os
+import shutil
+
+poem = \
+'''There was a young lady named Bright,
+    Whose speed was far faster than light;
+    She started one day
+    In a relative way,
+    And returned on the previous night.
+ 
+'''
+
+text = """
+    Красивое лучше, чем уродливое.
+    Явное лучше, чем неявное.
+    Простое лучше, чем сложное.
+    Сложное лучше, чем запутанное.
+    Плоское лучше, чем вложенное.
+    Разреженное лучше, чем плотное.
+    Читаемость имеет значение.
+    Особые случаи не настолько особые, чтобы нарушать правила.
+    При этом практичность важнее безупречности.
+    Ошибки никогда не должны замалчиваться.
+    Если они не замалчиваются явно.
+    Встретив двусмысленность, отбрось искушение угадать.
+    Должен существовать один и, желательно, только один очевидный способ сделать это.
+    Хотя он поначалу может быть и не очевиден, если вы не голландец [^1].
+    Сейчас лучше, чем никогда.
+    Хотя никогда зачастую лучше, чем прямо сейчас.
+    Если реализацию сложно объяснить — идея плоха.
+    Если реализацию легко объяснить — идея, возможно, хороша.
+    Пространства имён — отличная штука! Будем делать их больше!
+"""
+
+
+# print в файл
+def test_1():
+    my_file = open('1.txt', 'wt')
+    print(poem, file=my_file)
+    my_file.write(poem)
+    my_file.close()
+
+
+def write_to_file(file_name: str, data: str):
+    with open(file_name, 'w') as file:
+        file.write(data)
+
+# Чтение файла фрагментами
+def read_from_file(file_name: str):
+    with open(file_name, 'r') as file:
+        dzen = ''
+        chunk = 100
+        while True:
+            fragment = file.read(chunk)
+            print(len(fragment))
+            if not fragment:
+                break
+            else:
+                dzen += fragment
+        
+    print(dzen)
+
+# Чтение файла построчно
+def read_line_1(file_name: str):
+    with open(file_name, 'r') as file:
+        dzen = ''
+        while True:
+            line = file.readline()
+            if not line:
+                break
+            else:
+                dzen += line
+
+    print(dzen)
+
+# Чтение файла построчно. Упрощенный вариант.
+def read_line_2(file_name: str):
+    with open(file_name, 'r') as file:
+        dzen = ''
+        for line in file:
+            dzen += line
+
+    print(dzen)
+
+# Создание бинарного файла
+def generate_bin_file():
+    bdata = bytes(range(0, 256))
+    with open('bin_file.txt', 'wb') as file:
+        file.write(bdata)
+
+# В функции seek(offset, origin) второй аргумент origin 
+# определяет начальную позицию для считывания
+def file_seek(file_name: str):
+    with open(file_name, 'rb') as file:
+        # print(file.tell())
+        # print(file.seek(10))
+        # print(file.tell())
+        file.seek(255)
+        bdata = file.read()
+        print(len(bdata))
+        print(bdata)
+
+# 
+def test_os():
+
+    # Существование файла
+    print(os.path.exists('ooo.txt'))
+    print(os.path.exists('sadfasdf.awef'))
+    print(os.path.exists('.'))
+    print(os.path.exists('..'))
+
+    # Проверить тип
+    print(os.path.isfile('file.py'))
+    print(os.path.isdir('.'))
+
+# Копирование файлов
+def test_copy():
+    shutil.copy('file_1.txt', 'file_2.txt')
+    os.rename('file_1.txt', 'file_2.txt')
+
+
+
+# write_to_file('python_dzen.txt', text)
+# read_from_file('python_dzen.txt')
+# read_line_2('python_dzen.txt')
+# generate_bin_file()
+# file_seek('bin_file.txt')
+        
+test_os()

+ 37 - 0
exer/proc.py

@@ -0,0 +1,37 @@
+import os
+import subprocess
+import multiprocessing
+
+# Получить ID и текущую директорию процесса
+def test_1():
+    print(os.getpid())
+    print(os.getcwd())
+    print(os.uname())
+
+
+
+# Запуск других программ
+def test_2():
+    ret = subprocess.getoutput('date')
+    print(ret)
+
+
+# Создание процессов    
+def whoami(what):
+    print('Process %s says: %s' % (os.getpid(), what))
+
+def create_proc():
+    whoami("I'm the main programm")
+    for n in range(4):
+        p = multiprocessing.Process(target=whoami, args=("I'm function %s" % n,))
+        p.start()
+
+
+test_1()
+# test_2()
+
+# create_proc()    
+
+
+
+

+ 20 - 0
exer/python_dzen.txt

@@ -0,0 +1,20 @@
+
+    Красивое лучше, чем уродливое.
+    Явное лучше, чем неявное.
+    Простое лучше, чем сложное.
+    Сложное лучше, чем запутанное.
+    Плоское лучше, чем вложенное.
+    Разреженное лучше, чем плотное.
+    Читаемость имеет значение.
+    Особые случаи не настолько особые, чтобы нарушать правила.
+    При этом практичность важнее безупречности.
+    Ошибки никогда не должны замалчиваться.
+    Если они не замалчиваются явно.
+    Встретив двусмысленность, отбрось искушение угадать.
+    Должен существовать один и, желательно, только один очевидный способ сделать это.
+    Хотя он поначалу может быть и не очевиден, если вы не голландец [^1].
+    Сейчас лучше, чем никогда.
+    Хотя никогда зачастую лучше, чем прямо сейчас.
+    Если реализацию сложно объяснить — идея плоха.
+    Если реализацию легко объяснить — идея, возможно, хороша.
+    Пространства имён — отличная штука! Будем делать их больше!

+ 13 - 0
tmp/tmp.py

@@ -0,0 +1,13 @@
+import socket
+
+def test():
+    sock = socket.socket()
+    sock.connect(('192.168.31.199', 1919))
+
+    data = sock.recv(50)
+    sock.close()
+
+    print(data)
+
+
+test()