Het aanmaken van een nieuw tekst bestand met behulp van Python

Ik ben het beoefenen van het management van .txt-bestanden in python. Ik heb het lezen over en vond dat als ik een bestand probeert te openen die nog niet bestaat zal het op dezelfde directory waar het programma wordt uitgevoerd. Het probleem is dat wanneer ik probeer te openen, krijg ik deze foutmelding:

IOError: [Errno 2] No such file or directory:
‘C:\Users\myusername\PycharmProjects\Tests\copy.txt’.

Ik heb zelfs geprobeerd het opgeven van een pad zoals u kunt zien in de fout.

import os
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
my_file = os.path.join(THIS_FOLDER, 'copy.txt')
  • We kunnen je niet vertellen wat je fout hebt in je code als u geen toon ons uw code.
  • gedaan.
  • Deze code niet verhogen van een fout wanneer ik het in PyCharm?
  • Die code niet openen van een bestand, het creëert alleen een pad-object.
  • De IDE die je gebruikt is niet relevant hier. Het heeft geen invloed op het gedrag van de Python-code die je van het.
  • Deze code werkt op mijn computer als ik vervangen door een bestandsnaam voor __file__. Het produceert een string. '/Users/myusername/copy.txt' in mijn geval
  • Zijn probleem is niet over de code die hij geeft (waar haalt hij het pad van het bestand), het probleem is het over het openen van het bestand, waar hij een fout.

InformationsquelleAutor Just Half | 2018-02-24

 

3 Replies
  1. 48

    Eruit ziet als je vergeten bent de mode-parameter bij de aanroep open, probeer w:

    file = open("copy.txt", "w") 
    file.write("Your text goes here") 
    file.close() 

    De standaard waarde is r en zal mislukken als het bestand niet bestaat

    'r' open for reading (default)
    'w' open for writing, truncating the file first

    Andere interessante opties zijn

    'x' open for exclusive creation, failing if the file already exists
    'a' open for writing, appending to the end of the file if it exists

    Zie Doc voor Python2.7 of Python3.6

    — EDIT —

    Zoals aangegeven door chepner in de reactie hieronder, het is beter om het te doen met een withverklaring (die garandeert dat de file gesloten)

    with open("copy.txt", "w") as file:
        file.write("Your text goes here")
    • Behalve in uitzonderlijke situaties, de file object moet worden gebruikt met een with instructie in plaats van het sluiten uitdrukkelijk van de hand.
    • zeker, ik bewerkte mijn antwoord
  2. 0
    # Method 1
    f = open("Path/To/Your/File.txt", "w")   # 'r' for reading and 'w' for writing
    f.write("Hello World from " + f.name)    # Write inside file 
    f.close()                                # Close file 
    
    # Method 2
    with open("Path/To/Your/File.txt", "w") as f:   # Opens file and casts as f 
        f.write("Hello World form " + f.name)       # Writing
        # File closed automatically

    Er zijn veel meer methoden, maar deze twee zijn de meest voorkomende. Hoop dat dit geholpen heeft!

    • Om duidelijk te zijn, hoeft u niet om te bellen f.close() bij het gebruik van with open(...).
    • Goedgekeurd optimalisatie 😉
  3. 0
    f = open("Path/To/Your/File.txt", "w")   # 'r' for reading and 'w' for writing
    f.write("Hello World from " + f.name)    # Write inside file 
    f.close()                                # Close file 
    
    # Method 2shush
    with open("Path/To/Your/File.txt", "w") as f:   # Opens file and casts as f 
        f.write("Hello World form " + f.name)       # Writing
    # File closed automatically

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *