여러분,파일 조작 Python 2.7
여기 파일을 조작하는 데 어려움이 있습니다.
목표 : 폴더에서 파일을 복사하고 소스에서 파일을 복사해야하는 스크립트를 개발 중입니다.이 스크립트는 생성 할 달 수를 사용자가 읽습니다. 이 스크립트는 2017 년에 문자열을 .txt 파일로 변경해야하는 경우 생성 할 달 수와 동일한 파일을 복제합니다.
파일 내의원래 문자열 : ANO 크리에이터 DO ESTUDO 2016 문자열이 변경 될 수 있습니다 : ANO 크리에이터 DO ESTUDO PS 2017
: 파일이 변경 될 원래하지만 사본
아니다 txt 파일에서 행을 변경할 수 있습니까? 이 문자열 소스를 삭제의 일부가 발견 된 경우
읽기 프로그램 소스 파일 및 문자열을 수정 배열 내에서 문자열의 일부를 식별하는 배열 에 재생 :
내가 필요한 것 파일을 만들고 같은 이름으로 다른 파일을 작성하거나 소스 파일 내의 문자열 (행 단위의 단어)을 변경하십시오. 이 작동하지 않는
FILENAME_NEWAVE = Path of the source file
STRING_DGER = String to be searched
FILE_DATE = Year
, 당신은 내가이 작동 확신 소스 파일
def find_word_in_file_dger(FILENAME_NEWAVE, STRING_DGER, FILE_DATE):
f = open(FILENAME_NEWAVE, "r+")
file_array = f.readlines()
for i in file_array:
if i.find(STRING_DGER.encode('utf-8')):
f.write(i)
else:
print ("TO LENDO O ARRAY")
if FILE_DATE == "2016":
continue
else:
i.replace(STRING_DGER, "ANO INICIO DO ESTUDO " + FILE_DATE)
f.write(i)
print("TO ESCREVENDO A LINHA CORRETAMENTE MLK!! ")
return i
f.close()
return False
에 모습을 제공 제안 : '수입 re' '캐시 = None' '개방 ("file.txt를"을 " R ") F와 같은'' \t 캐시 = f.read()'' new_file의 re.sub = (STRING_DGER"ANO 크리에이터 DO ESTUDO {} "형식 (FILE_DATE.) 캐시)''경우 new_file : open ("newfile.txt", "w")을 f로 사용하여 ' \t'을 입력하십시오 : \t \t'f.write (new_file)' – Rollback
작동! 하지만 파일에 있던 문자열이 여전히 거기에 있었는데, 파일에 "2017"문자열을 "2016"문자열을 삭제해야합니다. 2017 put 2018 ... –
에 악센트가있는 경우이 오류 메시지가 나타납니다. "UnicodeDecodeError : 'ascii'코덱은 바이트 0xba를 위치 1355에서 디코딩 할 수 없습니다. 서수는 범위에 없습니다 (128)" –