CSV-Datei kann nicht geöffnet werden

Ich habe eine CSV-Datei von angemessener Größe (40 Megabyte). Ich weiß, dass einige Apps mit bestimmten Codierungen nicht funktionieren und dass sie Fehler auslösen, wenn die Codierung nicht ASCII ist. Aber es ist alarmierend, dass selbst TextEdit.app diese Datei nicht öffnen kann.

Zuerst habe ich Numbers.app ausprobiert . Ich habe sichergestellt, dass dies kein Launch Services-Fehler ist, da ich die Datei in der App geöffnet habe. Es würde nicht geladen. Der Fortschrittsbalken bleibt immer auf halber Strecke hängen. Wenn ich diese CSV-Datei mit TextEdit.app öffne , wird sie auch nicht geladen. Nicht einmal Google Sheets. Die Datei ist nur 40 Megabyte groß und enthält nur ASCII-Zeichen. Das Ausführen filedes Befehls in Terminal.app gibt die folgende Meldung zurück:

file.csv: ASCII text, with very long lines.

Ich kann die Datei mit Visual Studio Code öffnen , aber nicht in TextEdit.app . Wie kann ich es reparieren? Ich habe die Datei von Zeichen befreit \r.

Update : Laufender wc -l file.csvBefehl gibt zurück 176831. Mein System ist ein 2016 MacBookPro mit 16 GB RAM.

Wie viele Zeilen hat es ( wc -l FILE.csvim Terminal ausführen, um dies zu überprüfen)? Was passiert, wenn Sie versuchen, es in Textedit zu öffnen?
Gibt es einen Grund, warum Sie es mit einem bestimmten Editor öffnen möchten? Editoren unterscheiden sich in ihrer Fähigkeit, eine umfangreiche Datei im Speicher zu handhaben. Ich sehe im Allgemeinen schnellere Ladezeiten mit Sublime Text.app zum Beispiel gegenüber TextEdit.app .
Außerdem wäre es hilfreich, wenn Sie Ihre Systemkonfiguration teilen könnten. Möglicherweise verfügt das System nicht über genügend Arbeitsspeicher, um die CSV-Datei ordnungsgemäß zu laden.
Ich weiß, ich versuche es mit Textbearbeitung, und 40 Megabyte scheinen vernünftig zu sein
System hat 16 GB RAM
Es scheint keinen Grund dafür zu geben, dass die Datei nicht geladen wird. Versuchen Sie, den Dateiinhalt durch Ausführen zu betrachten, less file.csvund prüfen Sie, ob Sie die Zeichen gut lesen können. Versuchen Sie, die Datei nach einem Neustart erneut mit TextEdit.app zu öffnen.
Ich bin auf Situationen gestoßen, in denen einige Apps keine großen Dateien laden . Ich hatte das Glück, große Dateien wie diese in BBEdit zu öffnen, wo textedit nur ersticken würde
Moment Leute, sollte ich einen Link zu Google Drive geben, würde das helfen?
cat file.csvIm Terminal ausführen .
Können Sie uns eine herunterladbare Datei geben? bearbeitet in Frage

Antworten (1)

Es ist durchaus üblich, dass GUI-Programme große Textdateien nicht verarbeiten können. Obwohl 40 MB nach heutigen Standards nicht nach viel klingen, kann dies je nach Schreibweise der Anwendung zu viel mehr Speicher führen. Und GUI-Anwendungen sind oft nicht die effizientesten.

Möglicherweise möchten Sie die Textdatei mithilfe des Terminals in mehrere kleinere aufteilen. less filename.csvÜberprüfen Sie zunächst, ob Sie die Datei mit im Terminal öffnen können und ob die Zeichen gut lesbar sind. Wenn nicht, ist die Datei möglicherweise beschädigt, und das könnte das Problem sein.

Versuchen Sie für die tatsächliche Aufteilung Folgendes auf dem Terminal:

#!/bin/bash
N=10000 # Number of lines per file
i=1
j=0
filename="hugefile.csv"
extension=.csv
while [ $i -le $(wc -l $filename|awk '{print $1}') ]
do 
    newfilename="$(basename $filename $extension)$j$extension"
    echo $newfilename: $i
    sed -n $i,$((i+$N))p $filename > $newfilename
    j=$((j+1)); i=$((i+$N))
done

Kopieren Sie das und fügen Sie es in ein einfaches Textdokument ein (z. B. TextEdit im einfachen Textmodus oder nano auf dem Terminal) und benennen Sie es split.shoder etwas Ähnliches. Passen Sie die Parameter Nund filenamenach Bedarf an, geben Sie zB die gewünschte Anzahl von Zahlen pro Datei in N=...und den Dateinamen Ihrer Quelldatei als ein filename="...". Dadurch wird die notwendige Menge an Dateien in Ihrem aktuellen Verzeichnis generiert, um alle Zeilen der Quelldateien in Njeweils kleineren Dateien mit Zeilen abzudecken. An die Dateien wird eine Nummer angehängt, zB hugefile0.txtan hugefile9.txtoder so ähnlich.

Jetzt sollten Sie in der Lage sein, jede dieser Dateien in Ihrer gewünschten Anwendung zu öffnen. Es ist oft wünschenswert, mit kleineren Teilen einer großen Datei zu arbeiten als mit der ganzen Datei auf einmal. Sie könnten sogar die resultierenden CSV-Dateien nacheinander in Numbers öffnen und die Zeilen aus jeder Datei in ein großes Numbers-Dokument kopieren. Auf diese Weise wird der Importeur wahrscheinlich nicht an einer so großen Datei hängen bleiben.

Falls Sie Fehler in Bezug auf sedoder erhalten awk, liegt das daran, dass Mac sedund awkanders sind als die regulären sedoder awk. sedIn diesem Fall müssen Sie möglicherweise regulär und von etwas wie Macports oder Homebrew installieren awk.