나는 BeautifulSoup로 페이지를 고칩니다. 로직의 일부분은 때로 <td>
태그의 내용 중 일부가 <br>
일 수 있다는 것입니다.파이썬에서 CSV로 한 문자열을 두 열로 나누는 중
그래서 가끔은은 다음과 같습니다
<td class="xyz">
text 1
<br>
text 2
</td>
을하고 경우에 따라서는 다음과 같습니다 :이 통해 반복하고 output_row 목록에 추가하고
<td class="xyz">
text 1
</td>
나는 결국 목록에 추가하는 목록. 이전 형식이나 후자를 볼 때 텍스트를 하나의 셀에 넣기를 원합니다.
<br>
태그가 표시되는지 확인하는 방법을 찾았습니다. 왜냐하면 td.string이 아무 것도 표시되지 않고 텍스트 2에 항상 'ABC'가 포함되어 있기 때문입니다. 따라서 :
elif td.string == None:
if 'ABC' in td.contents[2]:
new_string = td.contents[0] + ' ' + td.contents[2]
output_row.append(new_string)
print(new_string)
else:
#this is for another situation and it works fine
나는 이것을 Jupyter Notebook에서 인쇄 할 때 "텍스트 1 텍스트 2"를 한 줄로 표시합니다. 그러나 내 CSV를 열면 두 가지 열이 있습니다. 따라서 td.string에 내용 (<br>
태그가 없음)이 있으면 텍스트 1이 하나의 열에 나타나지만 <br>
태그가있는 부분에 도달하면 모든 데이터가 이동합니다.
목록에 추가하기 전에 두 문자열 (두 개의 열)을 연결 한 이유가 확실하지 않습니다. 나는이 같은 파일에 쓰고
:
with open('C:/location/file.csv', 'w',newline='') as csv_file:
writer=csv.writer(csv_file,delimiter=',')
#writer.writerow(headers)
for row in output_rows:
writer.writerow(row)
csv_file.close
어떻게 파일을 쓰고 있습니까? – That1Guy
OP 편집에 추가되었습니다. – strahanstoothgap
내가 뭔가를 놓친다면 미안하지만'''join (td.text.split())'를 호출하여 어떤 '
'을 제거하고 그런 식으로 고쳐 줄 수 없습니까? – n1c9