MSBuild ItemGroup, исключая .svn каталоги и файлы в

Ваша интуиция правильная; нет ничего плохого в синтаксисе вашего кода.

Вы получаете AttributeError, потому что вы читаете данные с нескольких листов в своей книге, генерируя словарь DataFrames (вместо одного DataFrame), из которого вы пытаетесь to_csv (метод доступен только для DataFrame).

Когда ваш код написан, ключи создаваемого словаря соответствуют именам рабочих листов, а значения являются соответствующими DataFrames. Все это объяснено в документах для метода read_excel() .

Чтобы написать файл csv, содержащий агрегированные данные со всех листов, вы можете прокручивать листы и добавлять каждый DataFrame в ваш файл (это работает, если ваши листы имеют одинаковую структуру и размеры):

import pandas as pd
import numpy as np

sheets = ['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data']

for sheet in sheets:
    df = pd.read_excel("filelocation.xlsx",
        sheetname=sheet,
        skiprows=8, 
        parse_cols="B:D", 
        keep_default_na='FALSE', 
        na_values=['NULL'])

    with open('filelocation.csv', 'a') as f:
        df.to_csv(f, line_terminator=',', index=False, header=False)

40
задан Nicolas Dorier 24 June 2009 в 15:16
поделиться

3 ответа

Спасибо за Вашу справку, управляемую для сортировки его следующим образом:

<ItemGroup>
     <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" 
                   Exclude="$(LibrariesReleaseDir)\**\.svn\**" />
</ItemGroup>

Оказывается, что сопоставление с образцом в основном работает на файлах, таким образом, необходимо исключить все НИЖЕ эти .svn каталоги (.svn\\**) для MSBuild для исключения .svn сам каталог.

65
ответ дан Michael Haren 27 November 2019 в 01:30
поделиться

Вот еще лучший способ сделать это, действительно рекурсивно. Я, может казаться, не получаю Ваше решение пойти больше чем 1 уровень глубоко:

<LibraryFiles  
    Include="$(LibrariesReleaseDir)**\*.*"  
    Exclude="$(LibrariesReleaseDir)**\.svn\**\*.*"/>
4
ответ дан Dave Markle 27 November 2019 в 01:30
поделиться

Таким образом, проблема с объединением в цепочку переменных по некоторым причинам в msbuild. Следующие работы для меня, заметьте, что я должен только использовать относительные пути на основе переменной MSBuildProjectDirectory.

<CreateItem Include="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\*.*"
            Exclude="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\.svn\**">
  <Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>

следующее не работает:

<PropertyGroup>
    <WebProjectDir>$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI</WebProjectDir>
</PropertyGroup>
<CreateItem Include="$(WebProjectDir)\**\*.*"
            Exclude="$(WebProjectDir)\**\.svn\**">
  <Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>

Очень странный! Я просто потратил как 3 часа на этого.

12
ответ дан Ian Kemp 27 November 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: