Экспорт простого текста из Документов Google с помощью PYdrive имеет центрированную точку в Github

Я написал скрипт Pydrive, который загружает все файлы в определенную папку.

Документы загружаются как "sampleTitle.md" с mimetype "text/plain".

затем они просто попадают в мой репо.

Вот мой код Python для 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')

Код работает и файлы загружаются.

В Google Docs начало файла выглядит так:

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

Это передовая тема YAML, которая мне нужна для страниц с jekyll и github.

Когда я загружаю файл и помещаю его в репозиторий, он выглядит так:

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

Я действительно не знаю, куда входит эта центрированная точка. Он появляется только на github и скрыт во всех моих редакторах (Atom, Textwrangler, Brackets, TextEdit, VisualStudio Code). Кажется, что когда я нажимаю клавишу Backspace, где точка должна находиться в редакторе, она удаляет скрытую точку. В Nano это показано как пробел.

Я должен как-то удалить пробелы, потому что это нарушает мой формат уценки. Есть ли эффективное решение?

редактировать

Я обнаружил, что виновник - это спецификация, которая устанавливается в начале документа. Я пытаюсь сейчас удалить его с помощью команды оболочки, но я не могу найти тот, который работает, я попробовал следующее с примером:

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

Они удаляют полное содержимое файлов, а не только спецификацию.

Так что кто-нибудь знает, что я делаю не так с командной строкой, потому что все остальные, кажется, заставляют команду работать.

1 ответ

Когда файл с mimetype "application/vnd.google-apps.document" загружается как "text/plain", вставляется спецификация.

Эта спецификация, по-видимому, интерпретируется как пробел в nano и · в github.

Следующая команда для удаления спецификаций работает, когда данные переименовываются.

не работает:

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

работает на меня:

awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' text > text.md
Другие вопросы по тегам