복붙노트

[PYTHON] 파이썬에서 open ()이 존재하지 않으면 파일을 생성하지 않습니다.

PYTHON

파이썬에서 open ()이 존재하지 않으면 파일을 생성하지 않습니다.

파일을 읽기 / 쓰기로 여는 최선의 방법은 무엇입니까? 그렇지 않은 경우 파일을 만들고 읽기 / 쓰기로여십시오. 내가 읽은 파일에서 file = open ( 'myfile.dat', 'rw')이 작업을 수행해야합니다.

그것은 나를 위해 (파이썬 2.6.2) 작동하지 않습니다 및 버전 문제가 있는지 또는 그 또는 뭐 그런 식으로 일을해야 궁금하네요.

결론은 문제 해결을위한 솔루션이 필요하다는 것입니다. 나는 다른 것들에 대해 궁금하지만, 필요한 것은 오프닝 파트를 만드는 좋은 방법이다.

업데이트 : 포함하는 디렉토리는 다른 사용자가 아닌 사용자와 그룹이 쓸 수 있습니다 (Linux 시스템에서 ... 775의 권한). 정확한 오류는 다음과 같습니다.

해결법

  1. ==============================

    1.w + 모드로 open을 사용해야합니다 :

    w + 모드로 open을 사용해야합니다 :

    file = open('myfile.dat', 'w+')
    
  2. ==============================

    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. ==============================

    3.

    >>> import os
    >>> if os.path.exists("myfile.dat"):
    ...     f = file("myfile.dat", "r+")
    ... else:
    ...     f = file("myfile.dat", "w")
    

    r +는 읽기 / 쓰기를 의미합니다.

  4. ==============================

    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. ==============================

    5."rw"를 "w +"로 변경하십시오.

    "rw"를 "w +"로 변경하십시오.

    또는 추가하는 데 'a +'를 사용하십시오 (기존 내용은 지우지 않음).

  6. ==============================

    6.내 대답은 :

    내 대답은 :

    file_path = 'myfile.dat'
    try:
        fp = open(file_path)
    except IOError:
        # If not exists, create the file
        fp = open(file_path, 'w+')
    
  7. ==============================

    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. ==============================

    8.나는 그것이 r +, rw가 아니라고 생각한다. 나는 단지 시작일 뿐이며, 그것은 문서에서 본 것입니다.

    나는 그것이 r +, rw가 아니라고 생각한다. 나는 단지 시작일 뿐이며, 그것은 문서에서 본 것입니다.

  9. ==============================

    9.파일로 무엇을하고 싶니? 쓰기 만하거나 읽기 및 쓰기 둘 다?

    파일로 무엇을하고 싶니? 쓰기 만하거나 읽기 및 쓰기 둘 다?

    'w', 'a'는 쓰기를 허용하고 존재하지 않으면 파일을 생성합니다.

    파일에서 읽어야 할 경우 파일을 열기 전에 파일이 존재해야합니다. 열려고 전에 존재 여부를 테스트하거나 try / except를 사용할 수 있습니다.

  10. ==============================

    10.파일을 쓰려면 w +를 쓰고, 존재한다면 잘라내고, 파일을 읽으려면 r +를 쓰고, 존재하지 않지만 쓰기가 없으면 (그리고 null을 반환하는 경우) r +를 만들거나 새 파일을 만들거나 기존 파일에 추가하려면 +를 사용하십시오.

    파일을 쓰려면 w +를 쓰고, 존재한다면 잘라내고, 파일을 읽으려면 r +를 쓰고, 존재하지 않지만 쓰기가 없으면 (그리고 null을 반환하는 경우) r +를 만들거나 새 파일을 만들거나 기존 파일에 추가하려면 +를 사용하십시오.

  11. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    14.읽기 및 쓰기로 열려면 파일을 열 때 자르지 않고 파일을 열었을 때 바로 읽을 수 있어야한다고 가정합니다. 그래서 이것이 내가 사용하고있는 해결책이다.

    읽기 및 쓰기로 열려면 파일을 열 때 자르지 않고 파일을 열었을 때 바로 읽을 수 있어야한다고 가정합니다. 그래서 이것이 내가 사용하고있는 해결책이다.

    file = open('myfile.dat', 'a+')
    file.seek(0, 0)
    
  15. ==============================

    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. ==============================

    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)
    
  17. 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