[PYTHON] 파이썬에서 open ()이 존재하지 않으면 파일을 생성하지 않습니다.
PYTHON파이썬에서 open ()이 존재하지 않으면 파일을 생성하지 않습니다.
파일을 읽기 / 쓰기로 여는 최선의 방법은 무엇입니까? 그렇지 않은 경우 파일을 만들고 읽기 / 쓰기로여십시오. 내가 읽은 파일에서 file = open ( 'myfile.dat', 'rw')이 작업을 수행해야합니다.
그것은 나를 위해 (파이썬 2.6.2) 작동하지 않습니다 및 버전 문제가 있는지 또는 그 또는 뭐 그런 식으로 일을해야 궁금하네요.
결론은 문제 해결을위한 솔루션이 필요하다는 것입니다. 나는 다른 것들에 대해 궁금하지만, 필요한 것은 오프닝 파트를 만드는 좋은 방법이다.
업데이트 : 포함하는 디렉토리는 다른 사용자가 아닌 사용자와 그룹이 쓸 수 있습니다 (Linux 시스템에서 ... 775의 권한). 정확한 오류는 다음과 같습니다.
해결법
-
==============================
1.w + 모드로 open을 사용해야합니다 :
w + 모드로 open을 사용해야합니다 :
file = open('myfile.dat', 'w+')
-
==============================
2.다음 접근법의 장점은 블록이 끝날 때 예외가 발생하더라도 파일이 제대로 닫히는 것입니다. try-finally와 동일하지만 훨씬 짧습니다.
다음 접근법의 장점은 블록이 끝날 때 예외가 발생하더라도 파일이 제대로 닫히는 것입니다. try-finally와 동일하지만 훨씬 짧습니다.
with open("file.dat","a+") as f: f.write(...) ...
seek () 메서드는 파일의 현재 위치를 설정합니다.
f.seek(pos [, (0|1|2)]) pos .. position of the r/w pointer [] .. optionally () .. one of -> 0 .. absolute position 1 .. relative position to current 2 .. relative position from end
-
==============================
3.
>>> import os >>> if os.path.exists("myfile.dat"): ... f = file("myfile.dat", "r+") ... else: ... f = file("myfile.dat", "w")
r +는 읽기 / 쓰기를 의미합니다.
-
==============================
4.다음을 사용하는 것이 좋습니다.
다음을 사용하는 것이 좋습니다.
import os writepath = 'some/path/to/file.txt' mode = 'a' if os.path.exists(writepath) else 'w' with open(writepath, mode) as f: f.write('Hello, world!\n')
-
==============================
5."rw"를 "w +"로 변경하십시오.
"rw"를 "w +"로 변경하십시오.
또는 추가하는 데 'a +'를 사용하십시오 (기존 내용은 지우지 않음).
-
==============================
6.내 대답은 :
내 대답은 :
file_path = 'myfile.dat' try: fp = open(file_path) except IOError: # If not exists, create the file fp = open(file_path, 'w+')
-
==============================
7.open ( 'myfile.dat', 'a')는 저에게 효과적입니다.
open ( 'myfile.dat', 'a')는 저에게 효과적입니다.
py3k에서 코드가 ValueError를 발생시킵니다.
>>> open('myfile.dat', 'rw') Traceback (most recent call last): File "<pyshell#34>", line 1, in <module> open('myfile.dat', 'rw') ValueError: must have exactly one of read/write/append mode
Python-2.6에서는 IOError가 발생합니다.
-
==============================
8.나는 그것이 r +, rw가 아니라고 생각한다. 나는 단지 시작일 뿐이며, 그것은 문서에서 본 것입니다.
나는 그것이 r +, rw가 아니라고 생각한다. 나는 단지 시작일 뿐이며, 그것은 문서에서 본 것입니다.
-
==============================
9.파일로 무엇을하고 싶니? 쓰기 만하거나 읽기 및 쓰기 둘 다?
파일로 무엇을하고 싶니? 쓰기 만하거나 읽기 및 쓰기 둘 다?
'w', 'a'는 쓰기를 허용하고 존재하지 않으면 파일을 생성합니다.
파일에서 읽어야 할 경우 파일을 열기 전에 파일이 존재해야합니다. 열려고 전에 존재 여부를 테스트하거나 try / except를 사용할 수 있습니다.
-
==============================
10.파일을 쓰려면 w +를 쓰고, 존재한다면 잘라내고, 파일을 읽으려면 r +를 쓰고, 존재하지 않지만 쓰기가 없으면 (그리고 null을 반환하는 경우) r +를 만들거나 새 파일을 만들거나 기존 파일에 추가하려면 +를 사용하십시오.
파일을 쓰려면 w +를 쓰고, 존재한다면 잘라내고, 파일을 읽으려면 r +를 쓰고, 존재하지 않지만 쓰기가 없으면 (그리고 null을 반환하는 경우) r +를 만들거나 새 파일을 만들거나 기존 파일에 추가하려면 +를 사용하십시오.
-
==============================
11.python 3.4부터 pathlib를 사용하여 파일을 "touch"해야합니다. 이 스레드에서 제안 된 것보다 훨씬 더 우아한 솔루션입니다.
python 3.4부터 pathlib를 사용하여 파일을 "touch"해야합니다. 이 스레드에서 제안 된 것보다 훨씬 더 우아한 솔루션입니다.
from pathlib import Path filename = Path('myfile.txt') filename.touch(exist_ok=True) # will create file, if it exists will do nothing file = open(filename)
디렉토리와 같은 것 :
filename.mkdir(parents=True, exist_ok=True)
-
==============================
12.용도:
용도:
import os f_loc = r"C:\Users\Russell\Desktop\ip_addr.txt" if not os.path.exists(f_loc): open(f_loc, 'w').close() with open(f_loc) as f: #Do stuff
파일을 열면 파일을 닫아야합니다. 상황에 맞는 관리자가이를 수행합니다.
-
==============================
13.
''' w write mode r read mode a append mode w+ create file if it doesn't exist and open it in write mode r+ create file if it doesn't exist and open it in read mode a+ create file if it doesn't exist and open it in append mode '''
예:
file_name = 'my_file.txt' f = open(file_name, 'w+') # open file in write mode f.write('python rules') f.close()
이게 도움이 되길 바란다. [참고 파이썬 버전 3.6.2를 사용하고 있습니다.
-
==============================
14.읽기 및 쓰기로 열려면 파일을 열 때 자르지 않고 파일을 열었을 때 바로 읽을 수 있어야한다고 가정합니다. 그래서 이것이 내가 사용하고있는 해결책이다.
읽기 및 쓰기로 열려면 파일을 열 때 자르지 않고 파일을 열었을 때 바로 읽을 수 있어야한다고 가정합니다. 그래서 이것이 내가 사용하고있는 해결책이다.
file = open('myfile.dat', 'a+') file.seek(0, 0)
-
==============================
15.그래서 당신은 파일에 데이터를 쓰고 싶지만, 아직 존재하지 않는 경우에만?
그래서 당신은 파일에 데이터를 쓰고 싶지만, 아직 존재하지 않는 경우에만?
이 문제는 일반적인 w 모드 대신 open ()에 약간 알려진 x 모드를 사용하면 쉽게 해결할 수 있습니다. 예 :
>>> with open('somefile', 'wt') as f: ... f.write('Hello\n') ... >>> with open('somefile', 'xt') as f: ... f.write('Hello\n') ... Traceback (most recent call last): File "<stdin>", line 1, in <module> FileExistsError: [Errno 17] File exists: 'somefile' >>>
파일이 2 진 모드 인 경우 xt 대신 xb 모드를 사용하십시오.
-
==============================
16.
import os, platform os.chdir('c:\\Users\\MS\\Desktop') try : file = open("Learn Python.txt","a") print('this file is exist') except: print('this file is not exist') file.write('\n''Hello Ashok') fhead = open('Learn Python.txt') for line in fhead: words = line.split() print(words)
from https://stackoverflow.com/questions/2967194/open-in-python-does-not-create-a-file-if-it-doesnt-exist by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 문자열과 바이트 문자열의 차이점은 무엇입니까? (0) | 2018.10.05 |
---|---|
[PYTHON] 파이썬 : 생성자 표현식을 출력 하시겠습니까? (0) | 2018.10.05 |
[PYTHON] super ()가 "TypeError : 새 스타일 클래스의 경우 classobj가 아닌 유형이어야 함"을 발생시킵니다. (0) | 2018.10.05 |
[PYTHON] 파이썬 디버거 시작하기, pdb [닫힘] (0) | 2018.10.05 |
[PYTHON] 파이썬에서 긴 줄을 여러 줄로 나눌 수 있습니까? [duplicate] (0) | 2018.10.05 |