저는 파이썬 (2 주)을 처음 사용합니다. 저는 Coursera에서 Python for Everybody 과정을하고 있습니다. 몇 가지 아이디어를 내가 쓰고 싶은 앱으로 확장하기로 결정했습니다.파이썬 3에서 파일을 열고, 다시 포맷하고, 새로운 파일에 씁니다.
따옴표를 쓰는 불필요한 문자와 줄 바꿈을 제거한 다음 새로 서식이 지정된 문자열을 새 파일에 쓰고 싶습니다. 이 파일은 터미널에 임의의 따옴표를 표시하는 데 사용됩니다 (후자는 여기서는 필요하지 않습니다).
txt 파일의 항목은 다음과 같습니다
“The road to hell is paved with works-in-progress.”
—Philip Roth, WD some other stuff here
“Some other quote.”
—Another Author, Blah blah
그리고 나는 새 파일에 기록하려면 다음 싶습니다
"The road to hell is paved with works-in-progress." —Phillip Roth
"Some other quote." —Another Author
내가 줄 바꿈을 제거하고 싶습니다 견적과 저자 사이에 공백으로 대체하십시오. 필자는 이후에 쉼표에서 모든 것을 제거하고 싶다. (그래서 단지 인용문이다.) 파일에는이 중 73 개가 있으므로 이러한 변경을 수행하는 파일을 실행 한 다음 새로 서식이 지정된 따옴표로 새 파일에 쓰고 싶습니다.
나는 여러 가지 접근법을 시도해 왔으며, 현재 for 루프에서 두 개의 세그먼트를 작성하여 목록에 합류 할 생각이있는 곳으로 파일을 만들고있다. . 그러나 나는 이것이 고생이라면 막히고 또한 확신 할 수 없다. 어떤 도움이라도 감사하게 받아 들여질 것입니다. 이제는 두 개의 목록이 있는데 나는 그 목록에 참여할 수없는 것처럼 보입니다. 이렇게하는 것이 옳은 것인지 확실하지 않습니다. 이견있는 사람? 지금까지
코드 : 당신이 라인에 하나의 쉼표가 있다는 것을 확실하지 않은 경우
fh = open('quotes_source.txt')
quote = list()
author = list()
for line in fh:
# Find quote segment and assign to a string variable
if line.startswith('“'):
phrase_end = line.find('”')+1
phrase_start = line.find('“')
phrase = line[phrase_start:phrase_end]
quote.append(phrase)
# Find author segment and assign to a string variable
if line.startswith('—'):
name_end = line.find(',')
name = line[:name_end]
author.append(name)
print(quote)
print(author)
정규 표현식을! – ForceBru
내장 된 zip을 사용하여 두 목록을 함께 연결할 수 있습니다. – quamrana
또한 phrase_end의 계산이 정확합니까? – quamrana