2016-07-05 22 views
0

Ich schrieb ein Pydrive-Skript, das alle Dateien in einem bestimmten Ordner herunterlädt.Plain Text Export von Google Text & Tabellen mit PYdrive hat einen zentrierten Punkt in Github

Die Dokumente werden als 'sampleTitle.md' mit dem MIME-Typ 'text/plain' heruntergeladen.

dann werden sie einfach verpflichtet und zu meinem Repo geschoben.

Hier ist mein Python-Code für pydrive:

def checkFile(arg): 
    if arg['mimeType'] in mimetypes: 
     downloadFile(arg) 
     print('The file ' + str(arg['title']) + ' has a mimetype of ' + arg['mimeType'] + ' and will be downloaded') 
     return 
    if arg['mimeType'] in folder: 
     enterFolder(arg['id']) 
     print('The file ' + str(arg['title']) + ' has a mimetype of ' + arg['mimeType'] + ' and will be entered') 
    return 

def enterFolder(query): 
    file_list = drive.ListFile({'q': '\'' + query + '\' in parents and trashed=false'}).GetList() 
    for file1 in file_list: 
     checkFile(file1) 
    return 

def downloadFile(arg): 
    download_mimetype = None 
    download_mimetype = mimetypes[arg['mimeType']] 
    arg.GetContentFile(arg['title'], mimetype=download_mimetype) 
    print(arg['title'] + 'got downloaded') 
    return 

import sys 
sys.path.insert(1, '/Library/Python/2.7/site-packages') 

from pydrive.auth import GoogleAuth 

gauth = GoogleAuth() 
gauth.LocalWebserverAuth() # Creates local webserver and auto handles authentication. 

from pydrive.drive import GoogleDrive 

mimetypes = { 
    # Drive Document files as plain text. 
    'application/vnd.google-apps.document': 'text/plain' 
    # etc. 
} 

folder = { 
    # Comparing for folder. 
    'application/vnd.google-apps.folder': 'true' 
    # etc. 
} 

# Create GoogleDrive instance with authenticated GoogleAuth instance. 
drive = GoogleDrive(gauth) 
# Auto-iterate through all files that matches this query 

enterFolder('starfolder') 

Der Code funktioniert und die Dateien heruntergeladen werden.

In Google Text & Tabellen sthe Anfang einer Datei wie folgt aussieht:

--- 
layout: post 
title: title 
--- 

Sein eine YAML Titelei, die ich für Jekyll und Github-Seiten.

Wenn ich die Datei und schieben Sie es auf meine Repo herunterladen sieht es wie folgt aus:

·--- 
layout: post 
title: title 
--- 

Ich weiß wirklich nicht, wo das zentrierter Punkt eingegeben wird. Es erscheint nur auf github und ist in allen meinen Editoren versteckt (Atom, Textwrangler, Brackets, TextEdit, VisualStudio Code). Es scheint, dass, wenn ich Backspace trete, wo der Punkt im Editor sein sollte, entfernt er den versteckten Punkt. In Nano wird es als Leerraum angezeigt.

Ich muss das Leerzeichen irgendwie entfernen, weil es mein Abschriftenformat stört. Gibt es eine effektive Lösung?

bearbeiten

fand ich den Täter seine Stückliste, die am Anfang des Dokuments festgelegt wird. Ich versuche es jetzt mit einem Shell-Befehl zu entfernen, aber ich kann man finden, die mit Beispiel habe ich versucht, die folgenden Werke:

awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' text.md > text.md 
sed '1 s/\xEF\xBB\xBF//' <text.md> text.md 

Sie entfernen den gesamten Inhalt der Dateien, statt nur die Stückliste.

Also weiß jemand weiß, was ich falsch mit der Befehlszeile, weil alle anderen scheint der Befehl funktioniert zu bekommen.

+0

Mögliche Duplikat [awk Verwendung der Byte-Reihenfolge-Marke entfernen] (http: // Stackoverflow.com/questions/1068650/using-awk-zu-entfernen-the-byte-order-mark) – Waylan

+0

Ich werde es morgen in die awk Sache einfach meine Datei löscht so sehen wir, ob die etwas andere Version wird funktionieren – Opaldes

+0

Ok mein Skript funktioniert jetzt nach dem Herunterladen der Dateien ohne Erweiterung und mit den obigen Befehlen, um anschließend eine Erweiterung hinzuzufügen. – Opaldes

Antwort

0

Wenn eine Datei mit dem MIME-Typ "application/vnd.google-apps.document" als "text/plain" heruntergeladen wird, wird eine Stückliste eingefügt.

Diese Stückliste scheint in nano und inithub als Whitespace interpretiert zu werden.

Der folgende Befehl zum Entfernen von Stücklisten funktioniert, wenn die Daten umbenannt werden.

nicht funktioniert:

awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' text.md > text.md 

für mich arbeiten:

awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' text > text.md