답변:
두 가지 방법으로이 작업을 수행 할 수 있습니다.
f.write("text to write\n")
또는 Python 버전 (2 또는 3)에 따라 :
print >>f, "text to write" # Python 2.x
print("text to write", file=f) # Python 3.x
당신이 사용할 수있는:
file.write(your_string + '\n')
file.write(f"my number is: {number}\n")
잘 읽고 읽을 수 있습니다.
광범위하게 사용한다면 (많은 글을 쓰는 경우) 'file'을 서브 클래 싱 할 수 있습니다.
class cfile(file):
#subclass file to have a more convienient use of writeline
def __init__(self, name, mode = 'r'):
self = file.__init__(self, name, mode)
def wl(self, string):
self.writelines(string + '\n')
이제 원하는 기능을 수행하는 추가 기능 wl을 제공합니다.
fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()
어쩌면 다른 줄 바꿈 문자 (\ n, \ r, ...)와 같은 것이 없거나 마지막 줄도 줄 바꿈으로 끝나지 만 나에게 효과적입니다.
return None
이 경우에는 필요하지 않기 때문에 필요하지 않습니다. 두 번째로, 모든 파이썬 함수는 명령문 None
이 없을 때 기본적으로 반환 됩니다 return
.
당신은 할 수 있습니다 :
file.write(your_string + '\n')
다른 답변에서 제안한 것처럼 file.write
두 번 호출 할 때 왜 문자열 연결 (느린, 오류가 발생하기 쉬운)을 사용 합니까?
file.write(your_string)
file.write("\n")
쓰기는 버퍼링되므로 동일한 내용에 해당합니다.
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
file.write("This will be added to the next line\n")
또는
log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")
참고로 file
지원되지 않으며 Python 3
제거되었습니다. open
내장 기능으로 동일하게 수행 할 수 있습니다 .
f = open('test.txt', 'w')
f.write('test\n')
이진 파일에 쓰지 않는 한 print를 사용하십시오. 아래 예제는 CSV 파일 형식에 적합합니다.
def write_row(file_, *columns):
print(*columns, sep='\t', end='\n', file=file_)
용법:
PHI = 45
with open('file.csv', 'a+') as f:
write_row(f, 'header', 'phi:', PHI, 'serie no. 2')
write_row(f) # newline
write_row(f, data[0], data[1])
노트:
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/ , PEP-3101*columns
함수 정의에서-나열 할 인수를 여러 개 전달합니다 . * args 및 ** kwargs에 대한 질문을 참조하십시오.이것은 \ n을 구분 기호로 체계적으로 생성하기 위해이 문제를 스스로 해결하려고 시도한 솔루션입니다. 각 문자열이 파일의 한 줄인 문자열 목록을 사용하여 쓰지만, 당신에게도 효과가있는 것 같습니다. (파이썬 3. +)
#Takes a list of strings and prints it to a file.
def writeFile(file, strList):
line = 0
lines = []
while line < len(strList):
lines.append(cheekyNew(line) + strList[line])
line += 1
file = open(file, "w")
file.writelines(lines)
file.close()
#Returns "\n" if the int entered isn't zero, otherwise "".
def cheekyNew(line):
if line != 0:
return "\n"
return ""
with open(path, "w") as file: for line in strList: file.write(line + "\n")
않습니까? 이렇게하면 모든 목록 작업, 검사를 제거하고 단 3 줄만 가질 수 있습니다.