파이썬 내용 수정 질문드려용!(질문 내용 수정)
조회수 2630회
사용자가 텍스트 파일에 내용을 입력하고 그 내용을 수정하는 코드를 작성하고 있습니다.
입력
command = int(input("(1. input 2. edit) >> "))
if command == 1:
pattern_input = str(input("pattern >> ")).lower()
template_input = str(input("template >> ")).lower()
pattern = "<pattern>" + pattern_input + "</pattern>"
content = ""
if ";" in template_input:
template_list = template_input.split("; ")
for i in template_list:
content += "<li>" + i + "</li>" + "\n"
template = "<template>" + "<random>" + "\n" + content + "</random>" + "</template>"
else:
content = template_input
template = "<template>" + content + "</template>"
category = "<category>" + pattern + "\n" + template + "</category>"
with open('file.txt', 'a+t') as f:
f.write(category + "\n")
print(category)
수정
- 파이썬에서 텍스트 파일을 불러옴
- 해당 파일에서 특정 문장(사용자 입력1)이 있는지 확인
- 해당 문장을 바꿀 문장(사용자 입력2) 문장으로 바꾸기
이렇게 진행을 하려고 하는데 파일을 읽어올 때
- read나 readlines중에 어떤걸 사용해야 할까요?
- 파일 입출력시 read와 write가 동시에 가능한지 ?
- 특정 문장을 찾기 위해서는
if "*" in file:
구문을 사용하면 될까요? - 문장을 바꾸기 위해서 replace 함수를 쓰면 될까요?
도와주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
1. read나 readlines중에 어떤 걸 사용해야 할까요?
: 질문자님이 질문하신 상황에선 read를 사용하는 것이 좋습니다.
read는 텍스트 전체를 불러오는 함수이고, readlines는 line을 기준으로 나누어 불러오는 함수입니다.
다음은 두 함수를 비교한 예시입니다.
with open('test.txt', 'r') as f: print(f.read()) # '세종대왕\n훈민정음\n한글' f.seek(0) print(f.readlines()) # ['세종대왕\n', '훈민정음\n', '한글']
read 함수를 통해 텍스트 전체를 불러오고 replace를 사용하여 문장을 바꾸는 것이 효율적입니다.
2. 파일 입출력시 read와 write가 동시에 가능한지?
: 'r+'를 사용하면 가능합니다.
그러나 'a+'처럼 기존 텍스트 뒤에 덧붙여 수정하는 방식입니다. 참고하세요.
with open('test.txt', 'r+') as f: print(f.read()) # '세종대왕' f.write(' 훈민정음') # '세종대왕 훈민정음'으로 편집
3. 특정 문장을 찾기 위해서는
if "*" in file:
구문을 사용하면 될까요?: 네.
if
구문의 사용은 특정 문장을 '찾는'다기보단 특정 문장의 존재 여부를 '확인'한다는 말이 정확합니다.4. 문장을 바꾸기 위해서 replace 함수를 쓰면 될까요?
: 네.
가장 간단하면서도 확실한 방법입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력