我正在学习perl和python ...同时,不是我的设计,但必须要完成.
题:
在perl脚本中,我在我的txt的头部使用(见下文).
#!/usr/bin/env perl
use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)
对于我的python脚本,我应该做些什么吗?
在目录中,您有一些不同的文件- .txt,.sh然后计划文件没有.foo修改.
如果你ls的目录:
blah.txt
blah.sh
blah
blahs
Run Code Online (Sandbox Code Playgroud)
如何告诉for循环只使用没有.foo修改的文件?因此,在上面的例子中,对文件进行"处理"等等.
基本语法是:
#!/bin/bash
FILES=/home/shep/Desktop/test/*
for f in $FILES
do
XYZ functions
done
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这有效地遍历目录中的所有内容.我怎样才能排除.sh,.txt或其他任何修改?
我一直在玩一些if语句,但我真的很好奇,如果我可以选择那些未修改的文件.
也有人可以告诉我没有.txt这些纯文本文件的正确行话吗?
嘿伙计们快速提问
我的文件看起来像:
L 0 256 * * * * *
H 0 307 100.0 + 0 0
S 30 351 * * * * *
D 8 27 * * * * 99.3
C 11 1 * * * * *
Run Code Online (Sandbox Code Playgroud)
对于我的脚本,我想首先使用$ 1为某些行创建awk打印$ 0
如
awk '{if ($1!="C") {print $0} else if ($1!="D") {print $0}}'
Run Code Online (Sandbox Code Playgroud)
但是,必须有一种方法将"C"和"D"组合成一个IF语句......对吗?
例如,如果我想搜索== L,H,S ie ... NOT C或D我怎么会这样做?
只是好奇:D
谢谢
乔纳森
如果它们之间有共同的字符串,是否有一种逻辑合并多个字典的方法?即使这些常见字符串在一个dict()的值与另一个的键之间匹配?
我在SO上看到很多类似的问题,但似乎没有解决我将"低级文件"中的多个键与高键/值中的多个键相关联的具体问题(level1dict)
说我们有:
level1dict = { '1':[1,3], '2':2 }
level2dict = { '1':4, '3':[5,9], '2':10 }
level3dict = { '1':[6,8,11], '4':12, '2':13, '3':[14,15], '5':16, '9':17, '10':[18,19,20]}
finaldict = level1dict
Run Code Online (Sandbox Code Playgroud)
当我在逻辑上说我的意思是,在level1dict 1 = 1,3并且在level2dict 1 = 4和3 = 5,9所以整体(到目前为止)1 = 1,3,4,5,9(排序并不重要)
我想得到的结果是
#.update or .append or .default?
finaldict = {'1':[1,3,4,5,9,6,8,11,12,14,15,16,17] '2':[2,10,18,19,20]}
Run Code Online (Sandbox Code Playgroud)
回答:谢谢Ashwini Chaudhary和Abhijit的networkx模块.
因此,当我将Counter(from collections import Counter)打印到文件时,我总是得到这个文字Counter ({'Foo': 12})
反正是否让计数器没有如此字面地写出来?因此,它反而会写{'Foo' : 12}的,而不是Counter({'Foo' : 12}).
是的,它很挑剔,但我后来因为文件中的问题而感到害怕.
我知道可以更改字典中的键.但是可以使用定义的模式更改所有键吗?在这种情况下,我有一个字典,其中包含:
{'>Apple': 'Orange', '>Grape': 'Hopz'}
Run Code Online (Sandbox Code Playgroud)
问题:所有密钥都包含一个'>'+字符串.我可以删除这些'>'并更新吗?或者更新没有'>'?
小背景: 在我的脚本中,我尝试将一个字典值与此示例键进行比较,从而导致错误.我认为这是由于'>'因为v =!k如果k ='> foo'且v ='foo'
如果你们中的任何人都是科学家,那么'>'是一个fasta解析器的结果.我可能只是将脚本更改为不在行的开头写'>'(我没有尝试过这个..).
我很好奇是否可以在创建字典后重新排列键.
我想首先列举每个键后面的值的总数,然后将顺序洗牌,以便它们可以从最大到最小打印.
说:
x= {'ONE': ['foo'], 'THREE': ['up', 'side', 'down'], 'TWO': ['hot', 'mess']}
Run Code Online (Sandbox Code Playgroud)
我能看到它,或者至少按照三,二,一的顺序打印出来吗?
我可以结合.get使用len()以某种方式来实现这一目标?
python ×5
dictionary ×3
awk ×1
bash ×1
counter ×1
for-loop ×1
if-statement ×1
perl ×1
strict ×1
warnings ×1