Python에서 파일 내용을 읽고 쓰는 가장 쉬운 방법
Ruby에서는 s = File.read(filename)
. 내가 파이썬에서 아는 가장 짧고 명확한 것은
with open(filename) as f:
s = f.read()
더 짧고 (바람직하게는 한 줄) 더 읽기 쉽게 만드는 다른 방법이 있습니까?
참고 : 처음에는 질문을 "한 줄의 코드로 수행"이라고 표현했습니다. S.Lott가 지적했듯이, 짧다고해서 더 가독성이 좋은 것은 아닙니다. 그래서 저는 제가 의미하는 바를 명확히하기 위해 제 질문을 다시 표현했습니다. 나는 Ruby 코드가 한 줄 대 두 줄이기 때문에 반드시 더 낫고 더 읽기 쉽다고 생각합니다 (그것도 중요하지만), 또한 누가 파일을 닫는 지에 대한 질문을 제기하지 않는 인스턴스 메서드와는 반대로 클래스 메서드이기 때문에, 아래 답변에서 지적했듯이 GC를 사용하여 파일을 닫을 수 있지만 (따라서 한 줄로 만드는) 코드가 더 나빠집니다. 더 짧지 만. 휴대가 불가능할뿐만 아니라 명확하지 않게 만드는 것입니다.
라이브러리 사용에 개방적이라면 forked-path (easy_install 또는 pip 사용)를 설치해보십시오 .
그런 다음 다음을 수행 할 수 있습니다.
from path import path
s = path(filename).bytes()
이 라이브러리는 상당히 새롭지 만 수년 동안 Python 주위에 떠다니며 꽤 많이 사용 된 라이브러리의 포크입니다. 나는이 라이브러리 년 전 발견 이후, 나는 매우 드물게 사용하지 os.path
또는 open()
더 이상.
with open('x.py') as f: s = f.read()
*** 웃음 ***
위와 동일하지만 오류를 처리하지 않습니다.
s = open(filename, 'r').read()
pathlib를 사용하십시오 .
Python 3.5 이상 :
from pathlib import Path
contents = Path(file_path).read_text()
낮은 버전의 Python의 경우 pathlib2를 사용 하십시오 .
$ pip install pathlib2
그때
from pathlib2 import Path
contents = Path(file_path).read_text()
쓰기도 쉽습니다.
Path(file_path).write_text('my text')
contents = open(filename).read()
이것은 Perl이 아닙니다. 여러 줄의 코드를 한 줄에 강제로 맞추고 싶지 않습니다. 함수를 작성한 다음 함수를 호출하면 한 줄의 코드가 필요합니다.
def read_file(fn):
"""
>>> import os
>>> fn = "/tmp/testfile.%i" % os.getpid()
>>> open(fn, "w+").write("testing")
>>> read_file(fn)
'testing'
>>> os.unlink(fn)
>>> read_file("/nonexistant")
Traceback (most recent call last):
...
IOError: [Errno 2] No such file or directory: '/nonexistant'
"""
with open(fn) as f:
return f.read()
if __name__ == "__main__":
import doctest
doctest.testmod()
느리고 추하고 플랫폼에 따라 ...하지만 한 줄짜리 ;-)
import subprocess
contents = subprocess.Popen('cat %s' % filename, shell = True, stdout = subprocess.PIPE).communicate()[0]
다음과 같이 간단합니다.
f=open('myfile.txt')
s=f.read()
f.close()
And do whatever you want with the content "s"
contents = open(filename)
This gives you generator so you must save somewhere the values though, or
contents = [line for line in open(filename)]
This does the saving to list explicit close is not then possible (at least with my knowledge of Python).
참고URL : https://stackoverflow.com/questions/3758147/easiest-way-to-read-write-a-files-content-in-python
'Development Tip' 카테고리의 다른 글
사용자가 Swift로 이미지를 선택하도록 허용하는 방법은 무엇입니까? (0) | 2020.11.12 |
---|---|
파일이 배치 스크립트의 디렉토리인지 테스트하는 방법은 무엇입니까? (0) | 2020.11.12 |
El Capitan에서 포드를 업데이트하지 않는 Cocoa 포드 (0) | 2020.11.12 |
didUpdateToLocation 대신 didUpdateLocations (0) | 2020.11.12 |
Android : getSupportActionBar ()는 ActionBarSherlock 라이브러리에서 항상 null을 반환합니다. (0) | 2020.11.12 |