현재 기본적인 파이썬을 실험하고 있습니다. .txt 문서에서 4 가지 정보를 파이썬으로 가져 오려고합니다. 거기에서 나는 그것을 모두 쪼개서 기록에 추가 할 것이다. 그 다음에는 레코드에 다른 항목을 추가할지 여부를 묻는 계획을 세웁니다. 그렇다면 필요한 정보를 입력하고 새 항목으로 파일에 다시 저장할 수 있습니다.파일에서 레코드로 정보 가져 오기 (파이썬 3.2.1.1)
나는 사용자에게 각 정보를 개별적으로 입력하도록 요청할 코드를 작성했지만 매번 똑같은 것을 입력하면 정말 짜증났다. 그것은 여기있다, 완벽하게 작동 :
names = []
ages = []
years = []
schools = []
Member = []
for loop in range(0,2):
name = input("Please enter a name")
age = int(input("Please enter an age"))
while age <= 0 or age >= 100:
age = int(input("Please re-enter your age, between 0 and 100"))
year = int(input("Please enter your school year"))
while year <= 1 or year >= 6:
year = int(input("Please enter a valid school year, between 1 and 6"))
school = input("Please enter your school")
names.append(name)
ages.append(age)
years.append(year)
schools.append(school)
member = [names[loop], ages[loop], years[loop], schools[loop]]
Member.append(member)
Members = [Member]
print(Members)
내가 여러 개별 문자열과 내가 위에서처럼, 다른 배열에 추가하고자 한 정수를 입력하려고 할 때 나는 발생하는 문제가 있었다. 여기에 대한 코드입니다 :
with open('Record.txt','r') as scores:
data = scores.readlines()
names = [""]*len(data)
ages = [0]*len(data)
years = [0]*len(data)
schools = [""]*len(data)
Member = []*len(data)
counter = 0
for loop in range(0,len(data)):
data[loop] = data[loop][0:-1]
x = data[loop].rfind(",")
names[loop] = data[loop][:x]
print(names)
ages[loop] = int(data[loop][x:])
years[loop] = int(data[loop][x+1:])
schools[loop] = data[loop][x+2:]
member = [names[loop], ages[loop], years[loop], schools[loop]]
Member.append(member)
I 오류 (라인 28) 내가지고 있다고했다 : 여기
내가에서 읽고 있던 파일입니다 (이후 "Viewforth는"새 라인이) :ValueError: invalid literal for int() with base 10: ', Viewforth'
Harris, 16, 5, Viewforth
Cody, 16, 5, Viewforth
William, 16, 5, Viewforth
Ross, 17, 6, Viewforth
그냥 "나는 세 번째 후"나이 ","년 "2, 3 및 모든 것에 쉼표 1과 2 사이의"이름 "에 대한 첫 번째 쉼표 전에 모든 것을 저장하려면, 명확하게 학교 ". 앞서 도움을
감사합니다,
- 해리스
제안을 시도했지만 몇 가지 문제가 있습니다. 우선, 선을 먼저 선언해야하므로 "선"대신 "데이터"여야한다고 생각합니다. 두 번째는 " '목록'객체에 'split'속성이 없다는 오류가 발생했습니다. 나는 이것이 파이썬의리스트가 분할 메소드를 가지고 있지 않기 때문이라고 생각한다. 더 많은 의견을 보내 주시면 감사하겠습니다. – Chloroform
'line'은 파일의 줄에서 얻은 실제 문자열입니다 ([readline] (https://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects) 같은 것을 사용)). readlines()를 사용하지 않고 한 번에 각 줄을 수행하고 파일에서 모든 줄을 한꺼번에 가져 오는 것이 좋습니다 ('data'가 바로 지금입니다). – Avantol13