파이썬으로 파일 검색 및 프로그램 식별 코드 추출
목차
· 목적
· · 절차
・코드
・해설
・과제
목적
자사의 프로그램은 디렉토리에 저장되며 파일 1행에 식별 코드로 버전 관리합니다.
개발 단계에서 사용할 프로그램인지 여부는 식별 코드와 사양서를 비교하는 작업이 나오고 있습니다.
그 작업이 매우 번거롭기 때문에, 파일명과 식별 코드를 추출한 것을 텍스트 파일 출력시켜 단순화하고 싶다.
절차
1. 지정한 패스 부하·확장자 파일을 탐색한다
2. 파일 1행째의 문자열을 추출한다
3. "파일명 : 문자열"이라는 내용의 텍스트 파일을 출력한다
지정한 경로 부하는 다음과 같은 파일 구성으로 되어 있습니다.
파일 이름은 프로그래밍 방식으로 임의의 문자열입니다.
↓파일의 내용
코드
File_Finder.py
import os
from pathlib import Path
import re
Output_path = r"OUTPUT_PATH"
Search_path = r"SEARCH_PATH"
folder = []
# .c,.hファイルを探してリスト型データにする
def file_finder(_path):
os.chdir(_path)
temp = Path(_path)
file_list = [p for p in temp.glob("**/*") if re.search(".(c|h)", str(p))]
for path in file_list:
if not os.path.isdir(path):
folder.append(os.path.relpath(path, Search_path))
return folder
# リストから全ファイルを開き、1行目だけを抜き出して閉じる。辞書型にして{相対path:"1行目"}となるようにする
def file_read(*folder_list):
read_data = {}
for j in folder_list:
if os.path.isdir(j):
with open(j, "r") as f:
read_data[j] = f.readline()
f.close()
else:
with open(j, "r") as f:
read_data[j] = f.readline()
f.close()
return read_data
# 一つのテキストファイルとして出力する
def file_list_generator(**dictionary):
os.chdir(Output_path)
with open("soft_list.txt", "w") as f:
for k, i in dictionary.items():
temp = str(i).replace("/* ", "")
temp = temp.replace(" */", "")
f.write("{} : {}\n".format(k, temp))
f.close()
file_list = file_finder(Search_path)
file_dict = file_read(*file_list)
file_list_generator(**file_dict)
출력된 텍스트 파일은 이런 느낌입니다.
해설
함수마다 설명해 갑니다.
・・file_finder()
・・file_read(list)
・file_list_generator(*dict)
file_finder () # 경로 아래의 .c/.h 파일을 추출, 목록으로 반환
file_read(*list)
file_list_generator(**dict)
Reference
이 문제에 관하여(파이썬으로 파일 검색 및 프로그램 식별 코드 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MaaSaHero/items/4b977d24bbf86e89283a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
자사의 프로그램은 디렉토리에 저장되며 파일 1행에 식별 코드로 버전 관리합니다.
개발 단계에서 사용할 프로그램인지 여부는 식별 코드와 사양서를 비교하는 작업이 나오고 있습니다.
그 작업이 매우 번거롭기 때문에, 파일명과 식별 코드를 추출한 것을 텍스트 파일 출력시켜 단순화하고 싶다.
절차
1. 지정한 패스 부하·확장자 파일을 탐색한다
2. 파일 1행째의 문자열을 추출한다
3. "파일명 : 문자열"이라는 내용의 텍스트 파일을 출력한다
지정한 경로 부하는 다음과 같은 파일 구성으로 되어 있습니다.
파일 이름은 프로그래밍 방식으로 임의의 문자열입니다.
↓파일의 내용
코드
File_Finder.py
import os
from pathlib import Path
import re
Output_path = r"OUTPUT_PATH"
Search_path = r"SEARCH_PATH"
folder = []
# .c,.hファイルを探してリスト型データにする
def file_finder(_path):
os.chdir(_path)
temp = Path(_path)
file_list = [p for p in temp.glob("**/*") if re.search(".(c|h)", str(p))]
for path in file_list:
if not os.path.isdir(path):
folder.append(os.path.relpath(path, Search_path))
return folder
# リストから全ファイルを開き、1行目だけを抜き出して閉じる。辞書型にして{相対path:"1行目"}となるようにする
def file_read(*folder_list):
read_data = {}
for j in folder_list:
if os.path.isdir(j):
with open(j, "r") as f:
read_data[j] = f.readline()
f.close()
else:
with open(j, "r") as f:
read_data[j] = f.readline()
f.close()
return read_data
# 一つのテキストファイルとして出力する
def file_list_generator(**dictionary):
os.chdir(Output_path)
with open("soft_list.txt", "w") as f:
for k, i in dictionary.items():
temp = str(i).replace("/* ", "")
temp = temp.replace(" */", "")
f.write("{} : {}\n".format(k, temp))
f.close()
file_list = file_finder(Search_path)
file_dict = file_read(*file_list)
file_list_generator(**file_dict)
출력된 텍스트 파일은 이런 느낌입니다.
해설
함수마다 설명해 갑니다.
・・file_finder()
・・file_read(list)
・file_list_generator(*dict)
file_finder () # 경로 아래의 .c/.h 파일을 추출, 목록으로 반환
file_read(*list)
file_list_generator(**dict)
Reference
이 문제에 관하여(파이썬으로 파일 검색 및 프로그램 식별 코드 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MaaSaHero/items/4b977d24bbf86e89283a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
File_Finder.py
import os
from pathlib import Path
import re
Output_path = r"OUTPUT_PATH"
Search_path = r"SEARCH_PATH"
folder = []
# .c,.hファイルを探してリスト型データにする
def file_finder(_path):
os.chdir(_path)
temp = Path(_path)
file_list = [p for p in temp.glob("**/*") if re.search(".(c|h)", str(p))]
for path in file_list:
if not os.path.isdir(path):
folder.append(os.path.relpath(path, Search_path))
return folder
# リストから全ファイルを開き、1行目だけを抜き出して閉じる。辞書型にして{相対path:"1行目"}となるようにする
def file_read(*folder_list):
read_data = {}
for j in folder_list:
if os.path.isdir(j):
with open(j, "r") as f:
read_data[j] = f.readline()
f.close()
else:
with open(j, "r") as f:
read_data[j] = f.readline()
f.close()
return read_data
# 一つのテキストファイルとして出力する
def file_list_generator(**dictionary):
os.chdir(Output_path)
with open("soft_list.txt", "w") as f:
for k, i in dictionary.items():
temp = str(i).replace("/* ", "")
temp = temp.replace(" */", "")
f.write("{} : {}\n".format(k, temp))
f.close()
file_list = file_finder(Search_path)
file_dict = file_read(*file_list)
file_list_generator(**file_dict)
출력된 텍스트 파일은 이런 느낌입니다.
해설
함수마다 설명해 갑니다.
・・file_finder()
・・file_read(list)
・file_list_generator(*dict)
file_finder () # 경로 아래의 .c/.h 파일을 추출, 목록으로 반환
file_read(*list)
file_list_generator(**dict)
Reference
이 문제에 관하여(파이썬으로 파일 검색 및 프로그램 식별 코드 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MaaSaHero/items/4b977d24bbf86e89283a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(파이썬으로 파일 검색 및 프로그램 식별 코드 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MaaSaHero/items/4b977d24bbf86e89283a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)