18 Stimmen

Wie kann man mehrere Dateien lesen und schreiben?

Ich möchte ein Programm für diese Aufgabe schreiben: In einem Ordner habe ich n Anzahl von Dateien; zuerst eine Datei lesen und eine Operation durchführen, dann das Ergebnis in einer separaten Datei speichern. Dann lesen Sie die 2. Datei, führen die Operation erneut durch und speichern das Ergebnis in der neuen 2. Führen Sie das gleiche Verfahren für n Anzahl der Dateien. Das Programm liest alle Dateien nacheinander ein und speichert die Ergebnisse jeder Datei separat. Bitte geben Sie Beispiele, wie ich das machen kann.

1 Stimmen

Wahrscheinlich. Aber gleichzeitig lerne ich gerade selbst Python, und es scheint mir eine gute Übung zu sein, mich daran zu erinnern, dass ich nicht mit dem Kopf gegen die Wand schlage. Wenn es ihm nicht wichtig genug ist, dieses Wissen selbst zu erlernen, wer bin ich dann, dass ich ihm widerspreche? Wenn man eine Prüfung nicht besteht, ist man am Ende trotzdem durchgefallen.

2 Stimmen

Ich habe es als Hausaufgabe gekennzeichnet; das Stellen und Beantworten von Hausaufgabenfragen steht auf der Website auf dem Plan, aber im Interesse der Fragesteller möchte ich, dass wir sie zuerst bitten, einen Code zu liefern, der bisher nicht funktioniert.

0voto

pramod Punkte 1
from pylab import * 
import csv 
import os 
import glob 
import re 
x=[] 
y=[]

f=open("one.txt",'w')

for infile in glob.glob(('*.csv')):
    #   print "" +infile
    csv23=csv2rec(""+infile,'rb',delimiter=',')
    for line in csv23:      
        x.append(line[1])
        #  print len(x)
    for i in range(3000,8000):
        y.append(x[i])
    print ""+infile,"\t",mean(y)
    print >>f,""+infile,"\t\t",mean(y)
    del y[:len(y)]
    del x[:len(x)]

0voto

codearena Punkte 1

Das funktioniert auch beim Lesen mehrerer Dateien, mein Dateiname ist fedaralist_1.txt y federalist_2.txt und so habe ich 84 Dateien bis fedaralist_84.txt

Und ich lese die Dateien als f.

for file in filename:
        with open(f'federalist_{file}.txt','r') as f:
             f.read()

0voto

tldr Punkte 86

Ich weiß, dass ich dieses Doppel gesehen habe with open() irgendwo, konnte mich aber nicht mehr erinnern, wo. Also baute ich ein kleines Beispiel, falls jemand braucht.

""" A module to clean code(js, py, json or whatever) files saved as .txt files to 
be used in HTML code blocks.  """
from os import listdir
from os.path import abspath, dirname, splitext
from re import sub, MULTILINE

def cleanForHTML():
    """ This function will search a directory text files to be edited. """

    ## define some regex for our search and replace. We are looking for <, > and &
    ## To replaced with &ls;, &gt; and &amp;. We might want to replace proper whitespace
    ## chars to as well? (r'\t', '    ') and (f'\n', '<br>')
    search_ = ((r'(<)', '&lt;'), (r'(>)', '&gt;'), (r'(&)', '&amp;'))

    ## Read  and loop our file location. Our location is the same one that our python file is in.
    for loc in listdir(abspath(dirname(__file__))):

        ## Here we split our filename into it's parts ('fileName', '.txt')
        name = splitext(loc)

        if name[1] == '.txt':
            ## we found our .txt file so we can start file operations.
            with open(loc, 'r') as file_1, open(f'{name[0]}(fixed){name[1]}', 'w') as file_2:

                ## read our first file
                retFile = file_1.read()

                ## find and replace some text.
                for find_ in search_:
                    retFile = sub(find_[0], find_[1], retFile, 0, MULTILINE)

                ## finally we can write to our newly created text file.
                file_2.write(retFile)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X