다음은 제 목표에 대한 간략한 요약입니다. 기본적으로 이름 또는 식별자 인 데이터 텍스트 파일에 데이터 목록이 있습니다. 이름 목록은 모두 한 행에 있으며 공백으로 구분됩니다. 각 데이터를 개별 라인으로 만들고 싶습니다. 이 데이터는 식별자입니다. 예를 들어 큰 파일에있는 원래 데이터 텍스트 파일의 이름 중 하나 인 경우 큰 파일에 해당 데이터 행 (예 : 작은 데이터 파일에 동일한 줄에 이름과 일부 추가 정보가 모두 있음)을 갖길 원합니다.AttributeError : file2의 file1에서 문자열 식별자 목록을 찾습니다.
이 프로그램은 내가 그런 위업을 시도하기 시작했습니다. 아마 이것은 나의 기술의 한계를 밀고있다. 그러나 나는 이것을 끝낼 수 있기를 바란다. 나는 매우 thourough 수 있으며, 여러분의 의견을 기대하는 것을 시도했다
Traceback (most recent call last):
File "C:/program3.py", line 7, in <module>
line_list = line.split(" ")
AttributeError: 'list' object has no attribute 'split'
: 내가 파이썬에서 프로그램을 실행할 때 다음
datafile = open ('C:\\datatext.txt', 'r')
line = [item for item in open('C:\\datatext.txt', 'r').read().split(' ')
if item.startswith("name") or item.startswith("name2")]
line_list = line.split(" ")
completedataset = open('C:\\bigfile.txt', 'r')
smallerdataset = open('C:\\smallerdataset.txt', 'w')
trials = [ line_list ]
for line in completedataset:
for t in trials:
if t in line:
smallerdataset.write(line)
completedataset.close()
smallerdataset.close()
내가받은 오류입니다. 추가 질문이 있으면 필요한 경우 즉시 작성하겠습니다. 가장 좋은 모든 것을 즐기고 비오는 날씨를 즐기십시오.
편집 :
나는 제안 사항에 따라 프로그램을 약간 변경했다. 나는 지금 내 프로그램으로이 있습니다
with open('C:\\datatext.txt', 'r') as datafile:
lines = datafile.read().split(' ')
matchedLines = [item for item in lines if item.startswith("name1") or item.startswith("othername")]
completedataset = open('C:\\bigfile.txt', 'r')
smallerdataset = open('C:\\smallerdataset.txt', 'w')
trials = [ matchedLines ]
for line in completedataset:
for t in trials:
if t in line:
smallerdataset.write(line)
completedataset.close()
smallerdataset.close()
그리고 난 지금이 오류를 받고 있어요 :이 문제에 도움을 계속하고 대한
Traceback (most recent call last): File "C:/program5.py", line 17, in if t in line: TypeError: 'in ' requires string as left operand, not list >>>감사합니다.
편집 2 : 나는 몇 가지 변경 한 지금은이 오류 받고 있어요
: 지금의 약자로 여기
Traceback (most recent call last): File "C:/program6.py", line 9, in open('C:\\smallerdataset.txt', 'w')) as (completedataset, smallerdataset): AttributeError: 'tuple' object has no attribute '__exit__'
내 프로그램입니다 :
with open('C:\\datatext.txt', 'r') as datafile:
lines = datafile.read().split(' ')
matchedLines = [item for item in lines if item.startswith("nam1") or item.startswith("ndname")]
with (open('C:\\bigfile.txt', 'r'),
open('C:\\smallerdataset.txt', 'w')) as (completedataset, smallerdataset):
for line in completedataset:
for t in matchedLines:
if t in line:
smallerdataset.write(line)
completedataset.close()
smallerdataset.close()
어떻게 나는이 장애물을 피해 가야합니까?
. 'name2'로 시작하면, 항상 * name *으로 시작되기 때문에 코드의 일부는 결코 호출되지 않습니다. – Daenyth
'item.startswith ('name')'이'True'이면 두 번째 조건은 체크되지 않고'False'라면 두 번째 조건은 항상'False'라는 것을 알고 있습니다. 게다가'startswith'는 검사 할 줄의 튜플을 받아들입니다. – SilentGhost
Name1과 2는 방금 질문을 변경 한 임시 이름입니다. 개인 정보이므로 질문을 할 때 실제 이름을 사용하고 싶지 않습니다. –