【농담 앱】 깨진 파일을 생성하는 도구
소개
대학의 과제가 끝나지 않는다. 그런 일이 있습니까?
그럴 때 도움이 되는 툴을 개발했습니다.
(농담 어플입니다. 이 어플의 사용에 의해 일어난 트러블에 우리는 책임을 지지 않습니다.)
개요
확장자, 파일 사이즈, 파일명을 지정하는 것으로, 마치 제출할 때에 망가져 버린 것 같은 파일을 작성합니다. 마감일에 늦지 않아도 일단 내놓았다는 기성사실을 얻을 수 있는 것이 아닐까요?
그런 코드를 소개합니다.
우선은 병아리인 main 함수를 작성해, 거기로부터 문자 깨 만들기용의 함수를 import 하는 것으로 동작하는 구조입니다.
main.py
import os.path
import mojibake as moji
def main(func):
file_name = input("ファイル名を入力してください:")
ext = input("拡張子を入力してください:")
size = float(input("ファイルサイズを入力してください(MB):"))
size *= 1024 ** 2
file_size = 0
while(size > file_size):
file = file_name + '.' + ext
f = open(file, "a")
f.write(func)
f.write('\n')
file_size = os.path.getsize(file)
f.close()
if __name__ == '__main__':
main(moji.yabainari)
이 기능은 import한 함수에 인수를 주는 프로그램이므로 깨진 알고리즘인 패키지는 스스로 준비할 필요가 있습니다. main에 해당하는 인수를 바꾸어 즐기세요.
문자 깨진 알고리즘의 작성 예를 2개 썼습니다.
예 1
다이버전스 1%의 건너편에 가지 말고, 과제 제출할 수 없었던 사람이 사용해 주세요.
mojibake.py
def suzuha(size, file):
s = '失敗した' # 任意の文字列
s_size = 18 # 文字列のbyte数
with open(file, 'w', encoding='utf-8') as f:
i = 0
while size > i:
f.write(s)
i += s_size
else:
f.write('わたしは失敗した') # 任意の文字列にするときはelse文をコメントアウト
이 코드의 출력 결과를 텍스트 편집기에서 살펴 보겠습니다.
마지막만 처리를 바꾸고 있기 때문에, 다소 파일 사이즈는 바뀝니다. 대략적인 크기가 있으면 좋을 것입니다.
pdf 뷰어에서 열면 이런 느낌입니다.
확실하게 깨졌습니다.
메모장에서 열리면 실패한 곳이 아니라 여러 가지로 끝납니다.
임의의 문자열과 그 크기로 다시 쓰면 좋아하는 단어로 파일을 채울 수 있지만, 교수에게의 욕설 등은 절대로 그만둡시다.
예 2
예 1에서는 문자 화라고 하는 것보다, 텍스트 파일을 확장자를 바꾸어 열는 것으로, 마치 부서지고 있는 것처럼 보이는 코드였습니다. 예제 2에서는 보다 현실적인 깨짐을 유발하는 프로그램을 만들었습니다. 그런 코드가 여기입니다!
mojibake.py
def yabainari(size, file):
import struct, random
with open(file, 'wb') as f:
for i in range(0, int(size)):
f.write(struct.pack('B', random.randint(0, 255)))
무작위 비트 열을 만들고 바이너리 모드로 쓰면 깨짐이 발생합니다.
실제로 출력 결과를 텍스트 편집기에서 살펴 보겠습니다.
완벽하네요. 물론 pdf 뷰어에서도 열 수 없습니다.
요약
이런 코드 쓰고 있을 여유가 있으면 과제에 걸리자.
이 코드는 github에 포함되어 있습니다 -> htps : // 기주 b. 코 m / 요 h333 / b 로켄 _ 마케 r
마지막으로 한마디…
과제는 기한 내에! (계명)
Reference
이 문제에 관하여(【농담 앱】 깨진 파일을 생성하는 도구), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yoh333/items/a6b5c332dd911ef3dc8c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)