>  기사  >  백엔드 개발  >  Python을 사용하여 파일에 콘텐츠를 쓰는 방법

Python을 사용하여 파일에 콘텐츠를 쓰는 방법

王林
王林앞으로
2023-06-02 22:26:472363검색

1. Write() 메서드

write() 메서드 사용: open() 함수를 사용하여 파일을 연 다음 write() 메서드를 사용하여 파일에 내용을 씁니다. 예:

with open('example.txt', 'w') as f:
    f.write('Hello, world!')

open() 함수는 파일을 여는 Python의 내장 함수입니다. 일반적으로 사용되는 매개변수와 그 의미는 다음과 같습니다.

1.file: 파일 이름 또는 파일 경로. 절대 경로일 수도 있고 상대 경로일 수도 있습니다. 경로가 상대 경로인 경우 현재 작업 디렉터리를 기준으로 합니다. 경로를 생략하면 현재 작업 디렉터리에서 파일이 열립니다.

2.mode: 파일 열기 모드. 다음 값 중 하나일 수 있습니다.

  • 'r': 읽기 전용 모드. 기본 모드, 파일이 존재하지 않으면 예외가 발생합니다.

  • 'w': 쓰기 모드. 파일이 존재하지 않으면 파일을 생성하십시오. 파일이 이미 존재하는 경우 파일이 지워지고 새 내용이 기록됩니다.

  • 'x': 독점 생성 모드. 파일이 존재하지 않으면 파일을 생성하십시오. 파일이 이미 존재하는 경우 예외가 발생합니다.

  • 'a': 추가 모드. 파일이 존재하지 않으면 파일을 생성하십시오. 파일이 이미 존재하는 경우 파일 끝에 새 콘텐츠를 추가합니다.

  • 'b': 바이너리 모드. 'rb' 또는 'wb'와 같은 다른 모드와 함께 사용하세요.

  • 't': 텍스트 모드. "rt" 또는 "wt"와 같은 다른 모드와 함께 사용할 수 있습니다.

3.buffering: 버퍼 크기를 설정합니다. 생략하거나 0이면 버퍼링이 발생하지 않습니다. 1이면 행이 버퍼링됩니다. 1보다 큰 경우 버퍼 크기입니다.

4.encoding: 파일 콘텐츠를 인코딩하고 디코딩하는 데 사용되는 인코딩 형식입니다. 생략하면 기본 인코딩이 사용됩니다.

5.errors: 파일 콘텐츠를 인코딩 및 디코딩할 때 오류를 처리하는 방법. 다음 값 중 하나일 수 있습니다.

  • 'strict': 기본값. 오류가 발생하면 예외가 발생함을 의미합니다.

  • 'ignore': 오류를 무시합니다.

  • 'replace': 잘못된 문자를 '?'로 바꿉니다.

  • 'backslashreplace': 잘못된 문자를 백슬래시 이스케이프로 바꿉니다.

  • 'xmlcharrefreplace': 잘못된 문자를 XML 엔터티로 바꿉니다.

  • 'namereplace': 잘못된 문자를 N{...} 이스케이프로 바꿉니다.

6.newline: 텍스트 모드에서 줄 바꿈 처리를 제어합니다. 다음 값 중 하나일 수 있습니다.

  • None: 기본 개행 문자 n을 사용합니다.

  • '': 개행 변환이 수행되지 않습니다.

  • 'n', 'r', 'rn', 'u2028', 'u2029': 지정된 개행 문자를 사용합니다.

True로 설정하면 파일을 열 때 기본 파일 설명자가 닫힙니다. 기본값은 True입니다.

8.opener: 파일 열기를 위한 사용자 정의 함수 또는 클래스입니다. 기본값은 없음입니다.

이러한 매개변수는 파일에 대한 다양한 운영 요구 사항을 충족하기 위해 다양한 조합으로 사용할 수 있습니다. 예를 들어, open('example.txt', 'w')는 쓰기 모드에서 example.txt라는 파일을 열거나, 파일이 존재하지 않는 경우 비어 있는 새 파일을 만듭니다.

2. writelines() 메소드

writelines() 메소드는 문자열 목록을 파일에 씁니다. 예:

with open('example.txt', 'w') as f:
    lines = ['Hello, world!', 'Welcome to Python']
    f.writelines(lines)

writelines() 메서드는 문자열 목록을 파일에 쓰는 데 사용되는 메서드입니다. 그러나 다음 사항에 유의하십시오.

  • writelines() 메서드는 문자열 목록만 매개 변수로 허용합니다. 단일 문자열을 쓰려면 write() 메서드를 사용하십시오.

  • writelines() 메서드는 문자열 사이에 줄 바꿈을 자동으로 추가하지 않으므로 수동으로 문자열에 추가해야 합니다.

  • writelines() 메서드는 목록 끝에 빈 줄을 추가하지 않습니다. 마지막 줄에 빈 줄을 추가해야 하는 경우 개행 문자가 포함된 빈 문자열을 수동으로 추가하세요.

  • writelines() 메서드를 사용할 때 전달된 매개 변수가 문자열을 포함하는 목록인지 확인해야 합니다. 매개변수가 생성기 객체인 경우 전달하기 전에 목록으로 변환해야 합니다.

lines = ['line 1\n', 'line 2\n', 'line 3\n']
 
with open('example.txt', 'w') as f:
    f.writelines(lines)

메소드의 고급 사용법은 주로 반복자 객체의 데이터를 목록으로 한꺼번에 변환할 필요 없이 파일에 쓰는 것과 관련됩니다. 이 접근 방식은 모든 요소를 ​​메모리에 저장하지 않고 요소를 하나씩 반복하므로 대규모 데이터 세트에 유용합니다.

def generate_lines():
    yield 'line 1\n'
    yield 'line 2\n'
    yield 'line 3\n'
 
with open('example.txt', 'w') as f:
    f.writelines(generate_lines())

위 코드에서 generate_lines() 함수는 문자열을 하나씩 생성하는 반복자 객체를 반환합니다. 그런 다음 이 반복기 객체를 writelines() 메서드에 전달하면 반복기 객체의 문자열을 파일에 하나씩 씁니다.

3. Print() 함수

print() 함수를 사용하여 파일에 내용을 쓸 수 있습니다. 파일 매개변수를 열린 파일 개체로 지정해야 합니다. 예:

with open('example.txt', 'w') as f:
    print('Hello, world!', file=f)

다음은 print() 함수의 공통 매개변수와 자세한 소개입니다.

print() 함수는 출력 정보를 터미널에 인쇄하기 위해 Python에 내장된 함수입니다. print() 함수는 여러 매개변수를 허용하고 이를 터미널에 인쇄할 수 있습니다.

다음은 print() 함수의 공통 매개변수와 자세한 소개입니다.

print(*objects, sep=' ', end='n', file=sys.stdout, flush=False)

  • *objects:一个或多个要打印输出的对象,可以是字符串、数字、变量等。可以接受任意数量的参数。

  • sep:用于分隔多个参数的字符,默认是一个空格。在打印输出多个参数时,sep 参数将作为它们之间的分隔符。

  • end:用于表示打印输出结束的字符,默认是一个换行符。在输出最后一个参数后,end 参数会被添加在它们后面的字符位置。

  • file参数可用于指定输出至一个文件对象,如果未指定则默认输出到标准输出设备sys.stdout。可以将输出重定向到文件中,以便将输出保存到文件中而不是终端。

  • flush:用于指定是否立即刷新缓冲区,默认为 False。如果设置 flush 参数为 True,那么输出会立即写入文件,而不需要等待缓冲区填满。

# 打印输出单个字符串
print("Hello World")
 
# 打印输出多个参数
print("Name:", "John", "Age:", 25)
 
# 使用自定义分隔符
print("Name:", "John", "Age:", 25, sep="-")
 
# 使用自定义结束符
print("Name:", "John", "Age:", 25, end=".")
 
# 将输出重定向到文件
with open('output.txt', 'w') as f:
    print("Hello World", file=f)
 
# 立即刷新缓冲区
print("Hello World", flush=True)

print(string, *args, **kwargs)

  • 一个包含需要输出的信息和格式化占位符的格式化字符串。占位符应该用花括号 {} 包含,同时指明相应数据的类型、宽度、精度等信息来进行填充格式化。

  • *args:可选参数,包含要填充到格式化字符串中的数据。

  • **kwargs:可选参数,包含键值对,用于指定格式化字符串中的占位符的值。

name = "John"
age = 25
 
# 使用占位符输出字符串
print("Name: {}, Age: {}".format(name, age))
 
# 使用关键字参数输出字符串
print("Name: {n}, Age: {a}".format(n=name, a=age))
 
# 使用 f-string 输出字符串
print(f"Name: {name}, Age: {age}")

四、使用 csv 模块

可以使用 csv 模块将数据写入 CSV 文件。例如:

import csv
 
with open('example.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['Name', 'Age', 'Gender'])
    writer.writerow(['Alice', 25, 'F'])
    writer.writerow(['Bob', 30, 'M'])

五、使用 json 模块

可以使用 json 模块将 Python 对象写入 JSON 文件。例如:

import json
 
data = {
    'name': 'Alice',
    'age': 25,
    'gender': 'F'
}
 
with open('example.json', 'w') as f:
    json.dump(data, f)

위 내용은 Python을 사용하여 파일에 콘텐츠를 쓰는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제