예상되는 결과를 얻기 위해 Windows에서 Python 스크립트를 잘못 실행하고 있는지 파악하는 데 매우 어려움을 겪고 있습니다.
나는이있는 디렉토리가 list1.txt, list2.txt, list3.txt, list4.txt 및 list5.txt을 . 각 목록에는 list1.txt와 같이 고유 한 별도의 줄 문자열이 포함되어 있으며 각 줄에는 item1, item2, item3, item4 및 item5 가 값으로 포함됩니다. 그런 다음 list2.txt는 별도의 줄에 item6-item10을 갖게됩니다.
내가해야 할 일은이 디렉토리의 각 텍스트 파일에 대해 완료 될 때까지 list1의 각 값을 나열한 다음 마지막 목록을 마칠 때까지 list2, list3에있는 각 값을 나열하는 것입니다.
다음은 메모와 함께 내 결과 이미지에 대한 링크입니다. https://i.imgur.com/YBxQUqi.png
아래에 코드가 있지만 결과는 내가 기대하는 것이 아니며 여기서 내가 뭘 잘못하고 있는지 결정하는 데 매우 어려움을 겪고 있습니다.
def my_range(start, end, step):
while start <= end:
yield start
start += step
for x in my_range(1, 5, 1):
import os
rootdir = os.getcwd()
fis = rootdir + "\list\list" + str(x) + ".txt"
files = open(fis,'rU')
lines = files.readlines()
print(lines)
print(fis)
for line in lines:
print("Item = " + line)
목록 .txt 파일의 모든 파일과 마지막 파일이 아닌 각 파일의 모든 값에서 읽을 결과가 필요합니다. 나는 for 루프를 현명하게 중첩하지 않고 있다고 생각하며 이해할 수 없습니다. 또한 함수에 인수를 전달하고이를 수행하기위한 함수를 정의하여 테스트했으며이를 시도하는 스크립트를 완전히 망쳤습니다.
이 문제를 해결할 수있을 때 누구든지 나를 도울 수 있고 머리에서 머리카락을 뽑아주세요.
두 번째 for
루프는 기본 루프의 하위 루프 여야합니다. 또한 import os
반복 할 때마다하지 말고 한 번만 수행하십시오. 코드는 다음과 같아야합니다.
def my_range(start, end, step):
while start <= end:
yield start
start += step
import os
for x in my_range(1, 5, 1):
rootdir = os.getcwd()
fis = rootdir + "\list\list" + str(x) + ".txt"
files = open(fis,'rU')
lines = files.readlines()
print(lines)
print(fis)
for line in lines:
print("Item = " + line)
그러나 with open(fid,'rU') as f:
코드 오류가 발생하거나 충돌하는 경우 파일이 잠기지 않도록 대신 접근 방식을 사용해야한다고 언급합니다 . 그런 다음 다음과 같이 할 수 있습니다.
def my_range(start, end, step):
while start <= end:
yield start
start += step
import os
for x in my_range(1, 5, 1):
rootdir = os.getcwd()
fis = rootdir + "\list\list" + str(x) + ".txt"
with open(fis,'rU') as files:
print(fis)
for line in files:
print("Item = " + line)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다