2017-12-01 17 views
0

test.txt라는 파일이 있고 현재 그 안에 숫자 6이 있다고 가정합니다. x = 4와 같은 변수를 사용하여 파일에 쓰고 두 개의 숫자를 더하고 결과를 파일에 저장하려고합니다. , 예를Python3 - 변수를 사용하여 파일에 숫자를 쓰고 파일의 현재 숫자와 합산하는 방법

variable = 4.0 

with open('test.txt') as input_handle: 
    balance = float(input_handle.read()) + variable 

with open('test.txt', 'w') as output_handle: 
    print(balance, file=output_handle) 

이 코드를 실행하기 전에 존재 확인 'TEST.TXT'을 확인하고 거기에 번호를 가지고 :

var1 = 4.0 
    f=open(test.txt) 
    balancedata = f.read() 
    newbalance = float(balancedata) + float(var1) 
    f.write(newbalance) 
    print(newbalance) 
    f.close() 
+1

먼저 파일의 내용을 가져올 수 있습니다. 6, 변수로 저장하고 int로 변환 할 수 있습니다. 그런 다음 그것을 추가하고 변수를 출력하고, 두 개의 int를 추가했는지 확인하십시오. 그런 다음'open' 및 쓰기 모드를 사용할 수 있습니다. 6에 저장된 변수를 쓰고, x를 더하고, 추가 한 결과와 동일하게 설정하십시오. – ADug

+0

이봐, 몇 가지 코드를 추가했다. 현재 "TypeError : write() 인수가 str이어야하며 float이 아니어야합니다."라는 오류가 발생합니다. 하지만 내 문제는 float를 사용하고 싶습니다. – somerandomguy95

답변

1

그것은 당신이 그것을 만들려고 노력하는 것보다 아마 간단 0.0 - 아직 파일이 없으면 처음부터 파일을 생성하는 코드를 수정할 수 있습니다.

+0

도움을 주셔서 감사합니다. 정말 고마워요. – somerandomguy95

1

파일 만 읽기 및 쓰기 문자열 (또는 이진 모드로 열린 파일의 경우 bytes)입니다. 플로트를 문자열로 변환해야 파일에 쓸 수 있습니다.

아마도 str(newbalance)이 원하지만 가능하면 format을 사용하여 나타나는 방식을 맞춤 설정할 수 있습니다. 예를 들어, format(newbalance, '.2f')을 사용하여 소수 자릿수 두 자리로 반올림 할 수 있습니다.

읽기 전용으로 열 수있는 파일에 쓸 수 없으므로 f.seek(0) 통화와 결합 된 'r+' 모드 (읽기와 쓰기 모두 허용)를 사용해야합니다 (길이가 0 인 경우 f.truncate()). 새 숫자 문자열이 이전 길이보다 짧을 수도 있음) 파일을 닫은 다음 'w' 모드로 다시 엽니 다. 그러면 파일이 잘립니다.

+0

고맙습니다. 미래를 염두에 두려고 노력할 것입니다. 난 몰랐어. – somerandomguy95