小编luc*_*x7B的帖子

Windows x64上的Python x64位复制文件性能评估/问题

在编写一种备份应用程序时,我对Windows上的文件复制性能进行了评估.

我有几个问题,我想知道你的意见.

谢谢!

卢卡斯.

问题:

  1. 与1 GiB文件相比,复制10 GiB文件时为什么性能会慢得多?

  2. 为什么shutil.copyfile这么慢?

  3. 为什么win32file.CopyFileEx这么慢?这可能是因为标志win32file.COPY_FILE_RESTARTABLE?但是,它不接受int 1000作为标志(COPY_FILE_NO_BUFFERING),建议用于大型文件:http: //msdn.microsoft.com/en-us/library/aa363852%28VS.85%29.aspx

  4. 使用空的ProgressRoutine似乎对完全不使用ProgressRoutine没有影响.

  5. 是否有一种替代的,更好的复制文件的方式,但也获得进度更新?

1 GiB和10 GiB文件的结果:

test_file_size             1082.1 MiB    10216.7 MiB

METHOD                      SPEED           SPEED
robocopy.exe                111.0 MiB/s     75.4 MiB/s
cmd.exe /c copy              95.5 MiB/s     60.5 MiB/s
shutil.copyfile              51.0 MiB/s     29.4 MiB/s
win32api.CopyFile           104.8 MiB/s     74.2 MiB/s
win32file.CopyFile          108.2 MiB/s     73.4 MiB/s
win32file.CopyFileEx A       14.0 MiB/s     13.8 MiB/s
win32file.CopyFileEx B       14.6 MiB/s     14.9 MiB/s
Run Code Online (Sandbox Code Playgroud)

测试环境:

Python:
ActivePython 2.7.0.2 (ActiveState Software Inc.) based on
Python 2.7 (r27:82500, Aug 23 …
Run Code Online (Sandbox Code Playgroud)

python windows performance copy win32com

5
推荐指数
1
解决办法
1403
查看次数

Python 3.3:将 XML 转换为 YAML

我正在尝试使用 Python 3.3 将 XML 文件转换为 YAML。这是我的代码:

#! /etc/python3

test_filename_input = './reference-conversions/wikipedia-example.xml'
test_filename_output = 'wikipedia-example_xml_read-as-binary.yaml'

file_object = open( test_filename_input, 'rb')
data_in = file_object.read()
file_object.close()

from xml.dom.minidom import parseString
document_object = parseString( data_in)

import yaml
stream = open( test_filename_output, 'w')
yaml.dump( document_object, stream)
stream.close()
Run Code Online (Sandbox Code Playgroud)

作为参考,我使用了这里的 XML 文件:

<person>
  <firstName>John</firstName>
  <lastName>Smith</lastName>
  <age>25</age>
  <address>
    <streetAddress>21 2nd Street</streetAddress>
    <city>New York</city>
    <state>NY</state>
    <postalCode>10021</postalCode>
  </address>
  <phoneNumbers>
    <phoneNumber type="home">212 555-1234</phoneNumber>
    <phoneNumber type="fax">646 555-4567</phoneNumber>
  </phoneNumbers>
  <gender>
    <type>male</type>
  </gender>
</person>
Run Code Online (Sandbox Code Playgroud)

这应该导致这样的事情:

---
  firstName: John
  lastName: Smith
  age: …
Run Code Online (Sandbox Code Playgroud)

python xml dom yaml

4
推荐指数
1
解决办法
9900
查看次数

使用 PostgreSQL 的 PIVOT VIEW

我是 PostgreSQL 的新手,正在使用 9.4 版。我有一个表,其中收集的测量值作为字符串,需要使用始终是最新的内容(例如 VIEW)将其转换为一种 PIVOT 表。
此外,一些值需要转换,例如乘以 1000,如下面的“sensor3”示例所示。

源表:

CREATE TABLE source (
    id bigint NOT NULL,
    name character varying(255),
    "timestamp" timestamp without time zone,
    value character varying(32672),
    CONSTRAINT source_pkey PRIMARY KEY (id)
);

INSERT INTO source VALUES
  (15,'sensor2','2015-01-03 22:02:05.872','88.4')
, (16,'foo27'  ,'2015-01-03 22:02:10.887','-3.755')
, (17,'sensor1','2015-01-03 22:02:10.887','1.1704')
, (18,'foo27'  ,'2015-01-03 22:02:50.825','-1.4')
, (19,'bar_18' ,'2015-01-03 22:02:50.833','545.43')
, (20,'foo27'  ,'2015-01-03 22:02:50.935','-2.87')
, (21,'sensor3','2015-01-03 22:02:51.044','6.56');
Run Code Online (Sandbox Code Playgroud)

源表结果:

| id | name      | timestamp                 | value    |
|----+-----------+---------------------------+----------|
| 15 | …
Run Code Online (Sandbox Code Playgroud)

sql postgresql pivot case crosstab

4
推荐指数
1
解决办法
6268
查看次数

标签 统计

python ×2

case ×1

copy ×1

crosstab ×1

dom ×1

performance ×1

pivot ×1

postgresql ×1

sql ×1

win32com ×1

windows ×1

xml ×1

yaml ×1