小编dre*_*mac的帖子

PyYAML转储格式

我知道在SO上有一些关于这个的问题,但我找不到我想要的东西.

我正在使用pyyaml来读取(.load()).yml文件,修改或添加一个键,然后.dump()再次写入它.问题是我想在转储后保留文件格式,但它会改变.

例如,我编辑键en.test.index.few"Bye",而不是"Hello"

蟒蛇:

with open(path, 'r', encoding = "utf-8") as yaml_file:
    self.dict = pyyaml.load(yaml_file)
Run Code Online (Sandbox Code Playgroud)

然后,更改密钥:

with open(path, 'w', encoding = "utf-8") as yaml_file:
    dump = pyyaml.dump(self.dict, default_flow_style = False, allow_unicode = True, encoding = None)
    yaml_file.write( dump )
Run Code Online (Sandbox Code Playgroud)

YAML:

之前:

en:
  test:
    new: "Bye"
    index:
      few: "Hello"
  anothertest: "Something"
Run Code Online (Sandbox Code Playgroud)

后:

en:
  anothertest: Something
  test:
    index:
      few: Hello
    new: Bye
Run Code Online (Sandbox Code Playgroud)

有没有办法保持相同的格式?,例如qoutes和order.我使用了错误的工具吗?

我知道也许原始文件不完全正确,但我无法控制它(这是一个Ruby on Rails i18n文件).

非常感谢你.

python quotes yaml pyyaml python-3.x

37
推荐指数
3
解决办法
4万
查看次数

Mac OS X - 从桌面GUI运行shell脚本

您可以创建一个shell脚本或Python或Ruby脚本,并使用"终端"在Mac上运行它...如果您打开Finder,并单击包含已保存shell脚本源代码的文件的图标有没有办法让脚本运行,而不是在我的文本编辑器中打开?

macos shell scripting desktop

36
推荐指数
2
解决办法
4万
查看次数

在渲染之前检查模板是否存在

有没有办法在调用渲染之前检查twig模板是否存在?try catch块似乎不起作用,至少在开发环境中,而且,我更喜欢检查而不是异常的成本.

这个类TwigEngine有一个exists()方法,但没有找到使用的例子.

symfony twig transclusion

36
推荐指数
4
解决办法
2万
查看次数

PyYAML可以以非字母顺序转储dict项吗?

我正在使用yaml.dump输出字典.它根据键按字母顺序打印出每个项目.

>>> d = {"z":0,"y":0,"x":0}
>>> yaml.dump( d, default_flow_style=False )
'x: 0\ny: 0\nz: 0\n'
Run Code Online (Sandbox Code Playgroud)

有没有办法控制键/值对的顺序?

在我的特定用例中,反向打印(巧合)就足够了.但是为了完整性,我正在寻找一个答案,展示如何更精确地控制订单.

我看过使用collections.OrderedDict但是PyYAML没有(似乎)支持它.我也看过子类化yaml.Dumper,但我无法弄清楚它是否有能力改变项目顺序.

python dictionary yaml pyyaml

36
推荐指数
4
解决办法
3万
查看次数

何时使用try/catch块?

我已完成阅读并了解Try/Catch块的功能以及使用它的重要性.但我不知道何时/何地使用它们.有什么建议?我将在下面发布我的代码示例,希望有人有时间为我的示例提出一些建议.

    public AMPFileEntity(string filename)
    {
        transferFileList tfl = new transferFileList();
        _AMPFlag = tfl.isAMPFile(filename);
        _requiresPGP = tfl.pgpRequired(filename);
        _filename = filename.ToUpper();
        _fullSourcePathAndFilename = ConfigurationSettings.AppSettings.Get("sourcePath") + _filename;
        _fullDestinationPathAndFilename = ConfigurationSettings.AppSettings.Get("FTPStagePath") + _filename;
        _hasBeenPGPdPathAndFilename = ConfigurationSettings.AppSettings.Get("originalsWhichHaveBeenPGPdPath");
    }


    public int processFile()
    {

        StringBuilder sb = new StringBuilder();
        sb.AppendLine(" ");
        sb.AppendLine("    --------------------------------");
        sb.AppendLine("     Filename: " + _filename);
        sb.AppendLine("     AMPFlag: " + _AMPFlag);
        sb.AppendLine("     Requires PGP: " + _requiresPGP);
        sb.AppendLine("    --------------------------------");
        sb.AppendLine(" ");

        string str = sb.ToString();
        UtilityLogger.LogToFile(str);
        if (_AMPFlag)
        {
            if (_requiresPGP == true) …
Run Code Online (Sandbox Code Playgroud)

.net c# exception-handling try-catch

35
推荐指数
3
解决办法
3万
查看次数

Mysql查询动态地将行转换为列

MySQL可以将列转换为行,动态添加行所需的列数.我认为我的问题可能与数据透视表有关,但我不确定,除了通过给出以下示例,我不知道如何构建这个问题.

给出两个表A和B,看起来像

表A.

+--+-----+----+
|id|order|data|
+--+-----+----+
|1 |1    |P   |
+--+-----+----+
|2 |2    |Q   |
+--+-----+----+
|2 |1    |R   |
+--+-----+----+
|1 |2    |S   |
+--+-----+----+
Run Code Online (Sandbox Code Playgroud)

我想编写一个如下所示的查询:

结果表

+--+-----+-----+
|id|data1|data2|
+--+-----+-----+
|1 |P    |S    |
+--+-----+-----+
|2 |R    |Q    |
+--+-----+-----+
Run Code Online (Sandbox Code Playgroud)

基本上我想将表B中的每一行转换为结果表中的一列.如果在表B中为id = 1添加了一个新条目,那么我希望结果表自动扩展一列以容纳这个额外的数据点.

mysql sql pivot group-by

35
推荐指数
2
解决办法
7万
查看次数

用于解除引用函数结果的PHP语法

背景

在我定期使用的每种其他编程语言中,操作函数的返回值很简单,而不会声明一个新变量来保存函数结果.

但是,在PHP中,这看起来并不那么简单:

example1(函数结果是一个数组)

<?php 
function foobar(){
    return preg_split('/\s+/', 'zero one two three four five');
}

// can php say "zero"?

/// print( foobar()[0] ); /// <-- nope
/// print( &foobar()[0] );     /// <-- nope
/// print( &foobar()->[0] );     /// <-- nope
/// print( "${foobar()}[0]" );    /// <-- nope
?>
Run Code Online (Sandbox Code Playgroud)

example2(函数结果是一个对象)

<?php    
function zoobar(){
  // NOTE: casting (object) Array() has other problems in PHP
  // see e.g., http://stackoverflow.com/questions/1869812
  $vout   = (object) Array('0'=>'zero','fname'=>'homer','lname'=>'simpson',);
  return $vout;
}

//  can php say "zero"? …
Run Code Online (Sandbox Code Playgroud)

php arrays syntax function

34
推荐指数
8
解决办法
2万
查看次数

以编程方式一步提取tar.gz(在7zip的Windows上)

问题:我希望能够一步提取tar.gz文件.这使我的问题几乎 与这个问题相同:tar-gz的stackoverflow问题.

我的问题是几乎相同的,但不一样的,因为我想做到这一点,使用7zip的命令行(或类似的东西)一个bat文件或红宝石/的Perl/Python脚本内的窗口.

问题:这个看似简单的任务证明比第一次出现更具参与性.有没有人有一个脚本可以做到这一点?

scripting gzip 7zip tar archive

34
推荐指数
4
解决办法
5万
查看次数

Python是否在Ruby中执行类似于"string#{var}"的变量插值?

在Python中,编写它是很繁琐的:

print "foo is" + bar + '.'
Run Code Online (Sandbox Code Playgroud)

我可以在Python中做这样的事吗?

print "foo is #{bar}."

ruby python language-comparisons string-formatting string-interpolation

34
推荐指数
5
解决办法
3万
查看次数

我不明白YAML标签是什么

我在某种程度上得到它,但我还没有看到一个没有提出更多问题而不是答案的例子.

http://rhnh.net/2011/01/31/yaml-tutorial

# Set.new([1,2]).to_yaml
--- !ruby/object:Set 
hash: 
  1: true
  2: true
Run Code Online (Sandbox Code Playgroud)

我知道我们正在声明一个Set标签​​.我不知道后续哈希映射与它有什么关系.我们是在宣布架构吗?有人能给我看一个带有多个标签声明的例子吗?

我已经阅读了规范:http://yaml.org/spec/1.2/spec.html#id2761292

%TAG ! tag:clarkevans.com,2002:
Run Code Online (Sandbox Code Playgroud)

这是宣告架构吗?为了成功解析文件,解析器还需要做些什么吗?某种类型的模式文件?

http://www.yaml.org/refcard.html

Tag property: # Usually unspecified.
    none    : Unspecified tag (automatically resolved by application).
    '!'     : Non-specific tag (by default, "!!map"/"!!seq"/"!!str").
    '!foo'  : Primary (by convention, means a local "!foo" tag).
    '!!foo' : Secondary (by convention, means "tag:yaml.org,2002:foo").
    '!h!foo': Requires "%TAG !h! <prefix>" (and then means "<prefix>foo").
    '!<foo>': Verbatim tag (always means "foo").
Run Code Online (Sandbox Code Playgroud)

为什么与主标记和辅助标记相关,为什么辅助标记引用URI?有这些问题正在解决什么问题?

我似乎看到很多"他们是什么",没有"为什么他们在那里",或"他们用于什么".

tags yaml specifications pyyaml

34
推荐指数
1
解决办法
1万
查看次数