이번엔 메모장 파일 만들다 f.write() 관련 의문점입니다.

점프 투 파이썬 06-4 메모장 만들기에서
이런식으로 하면 된다고 나와있더라구요
import sys

option = sys.argv[1]

if option == '-a':
memo = sys.argv[2]
f = open('memo.txt', 'a')
f.write(memo)
f.write('\n')
f.close()
elif option == '-v':
f = open('memo.txt')
memo = f.read()
f.close()
print(memo)

    제가 직접 해본건 아래와 같은데요,

import sys
if sys.argv[1] == "-add":
f = open("memo.txt",'a')
f.write(sys.argv[2],"\n")
f.close()
elif sys.argv[1] == "-read":
f = open("memo.txt",'r')
print(f.read())
f.close()

질문은 이겁니다:
1. 제가 쓴 코드에서 f.write(sys.argv[2],"\n") 부분처럼 write안에 한꺼번에 쓸 내용을 쓰니까 f.write에는 하나의 요소만 들어간다고 하더라고요. 혹시 이렇게 종류가 다른 요소를 한번에 넣을 방법은 없을까요?
2. 점프 투 파이썬 저자님께서 f = open('memo.txt') 이렇게 적으셨던데 열때 여는 방식을 뒤에 적어줘야 하는거 아닐까요? 안적어주면 기본으로 r 모드로 실행 되는 거라서 생략하신건가요?

gunpoll823 447

2021년 12월 18일 3:50 오후

@gunpoll823님 f.write(sys.argv[2]+"\n") 해보세요. - 박응용님, 2021년 12월 18일 5:36 오후 추천 , 대댓글
@박응용님 감사합니다! - gunpoll823님, 2021년 12월 18일 5:49 오후 추천 , 대댓글
@박응용님 자꾸 질문 드려 죄송합니다. 혹시 콤마(,)와 + 를 적는것의 차이가 뭐길래 +는 되고 콤마는 안되는걸까요? 아래의 예에 대입해서 생각해 보았는데요, print(3 + 'x') : 문자열과 숫자를 더하는것, 근본적으로 서로 다른 종류를 '하나의 객체'로 만드는 것이라서 오류 print(3 , 'x') : 잘 됨. 서로 다른 두 객체라서 되는것 (?) 이런 맥락에서 f.write() 안에 들어가는 것에 +를 쓰면 sys.argv[2]와 "\n"이라는 문자열을 하나로 만든다는 뜻이 되는데, 그럼 sys.argv[2]가 문자열일땐 괜찮지만 숫자가 될때는 위의 print에서 처럼 오류가 나야 되는것 아닌가요? (sys.argv[2]를 숫자로 설정해서 해보니까 잘되네요) - gunpoll823님, 2021년 12월 18일 6:05 오후 추천 , 대댓글
@gunpoll823님 sys.argv의 항목은 문자열 데이터입니다. 숫자를 명령행에서 전달해도 모양만 숫자이지 문자열입니다. - 박응용님, 2021년 12월 18일 7:43 오후 추천 , 대댓글
@박응용님 감사합니다. - gunpoll823님, 2021년 12월 18일 10:55 오후 추천 , 대댓글
목록으로