现在我有这个:
echo "silly/horse/fox" | cut -d "/" -f3
fox
Run Code Online (Sandbox Code Playgroud)
但是无论我们有多少分隔符,我都希望能够得到最后一个字符串.
所以像"傻/马/狐狸/狮子"这样的东西会让我"狮子"
类似Python的string.split('/')[ - 1]
假设我的html看起来像这样:
<td>Potato1 <span somestuff...>Potato2</span></td>
...
<td>Potato9 <span somestuff...>Potato10</span></td>
Run Code Online (Sandbox Code Playgroud)
我有美丽的做法:
for tag in soup.find_all("td"):
print tag.text
Run Code Online (Sandbox Code Playgroud)
我明白了
Potato1 Potato2
....
Potato9 Potato10
Run Code Online (Sandbox Code Playgroud)
是否可以只获取标签内的文本,而不是嵌套在span标签内的任何文本?
我的代码当前接收一个文件,并将其保存到预设目录,但是可以只使用该文件(读取文件)而不保存它吗?
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return "yatta"
else:
return "file not allowed"
return render_template("index.html")
Run Code Online (Sandbox Code Playgroud)
我试过了两个
file.read()和file.stream.read()但是返回值为空.我验证该文件是否存在于上载的目录中,并看到该文件不为空.
从我的理解INSERT IGNORE插入一个新条目,如果它尚不存在,如果它已经存在,忽略它.所以我一直试图这样做,但它似乎没有起作用.这是我的尝试:
insert insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)
mysql> insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)
mysql> insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)
mysql> insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)
mysql> select * from rss_feeds where md5sum="1234";
+------+--------+----------+---------+----------+--------+--------+---------+
| link | source | headline | updated | inserted …Run Code Online (Sandbox Code Playgroud) 我的目标是将字符串转换为字典.这是它的样子:
[exploit] => 1
[hits] => 1
[completed] => 1
[is_malware] => 1
[summary] => 26.0@13965: suspicious.warning: object contains JavaScript
76.0@14467: suspicious.obfuscation using eval
76.0@14467: suspicious.obfuscation using String.fromCharCode
[severity] => 4
[engine] => 60
Run Code Online (Sandbox Code Playgroud)
所以我已经尝试了几种方法来做到这一点,第一次尝试是split在\n,但我遇到了问题,对于[摘要],内容被拆分,所以不起作用.然后我的第二次尝试是split在=>遇到问题,一旦我分裂=>它将不知道它必须拆分\n为下一个键.基本上它应该在最后看起来像{exploit:1,命中:1,完成:1 ....}等等
任何帮助将不胜感激.
这是我的“请求”类/表:
class Request(BaseModel):
TIME_STAMP = DateTimeField(default=datetime.datetime.now)
MESSAGE_ID = IntegerField()
Run Code Online (Sandbox Code Playgroud)
对于 peewee,我想从表中选择过去 10 分钟内发生的所有“请求”。像这样的东西:
rs = Request.select().where(Request.TIME_STAMP-datetime.datetime.now<(10 minutes))
Run Code Online (Sandbox Code Playgroud)
但是,我不完全确定如何获取 TIME_STAMP 和当前时间(以分钟为单位)之间的差异。
编辑:我已经尝试过 Gerrat 的建议,但 Peewee 似乎哭了:
/usr/local/lib/python2.7/dist-packages/peewee.py:2356: Warning: Truncated incorrect DOUBLE value: '2014-07-19 15:51:24'
cursor.execute(sql, params or ())
/usr/local/lib/python2.7/dist-packages/peewee.py:2356: Warning: Truncated incorrect DOUBLE value: '0 0:10:0'
cursor.execute(sql, params or ())
Run Code Online (Sandbox Code Playgroud) 假设我的查询如下所示:
q = SELECT * FROM MY_TABLE WHERE FIELD LIKE ?
cursor.execute(q, some_query_value)
Run Code Online (Sandbox Code Playgroud)
这似乎没有进行"包含"搜索,所以我尝试这样做
q = SELECT * FROM MY_TABLE WHERE FIELD LIKE %?%
cursor.execute(q, some_query_value)
Run Code Online (Sandbox Code Playgroud)
但是python似乎不喜欢这个.这样做的正确方法是什么?
我正在尝试将带有共享密钥的字典列表合并到一个密钥中:列表配对,其中列表包含所有值.底部代码做到了,但它非常难看.我依稀记得能够在词典列表中使用reduce来实现这一点,但我不知所措.
1 dictionaries = [{key.split(',')[0]:key.split(',')[1]} for key in open('test.data').read().splitlines()]
2 print dictionaries
3 new_dict = {}
4 for line in open('test.data').read().splitlines():
5 key, value = line.split(',')[0], line.split(',')[1]
6 if not key in new_dict:
7 new_dict[key] = []
8 new_dict[key].append(value)
9 print new_dict
Run Code Online (Sandbox Code Playgroud)
输出:
[{'abc': ' a'}, {'abc': ' b'}, {'cde': ' c'}, {'cde': ' d'}]
{'cde': [' c', ' d'], 'abc': [' a', ' b']}
Run Code Online (Sandbox Code Playgroud)
test.data包含:
abc, a
abc, b
cde, c
cde, d
Run Code Online (Sandbox Code Playgroud) 假设我有一个名为TBL_ACCOUNT的表,其中包含我的所有用户,还有一个名为TBL_EMAIL_SUBSCRIPTION的表,其中包含用户已订阅的提要。我正在尝试使其每个用户+ feed组合中只有一个条目,因此user1只能订阅一次feed1,但是user1可以同时订阅feed1和feed2。
这是我的模型的样子:
class TBL_ACCOUNT(BaseModel):
USERNAME = CharField(unique=True)
PASSWORD = CharField()
EMAIL = CharField(unique=True)
class TBL_EMAIL_SUBSCRIPTION(BaseModel):
USER = ForeignKeyField(TBL_ACCOUNT)
FEED = CharField()
class Meta:
indexes = (("USER_id", "FEED", True))
Run Code Online (Sandbox Code Playgroud)
我也尝试过仅使用“ USER”作为索引,但是由于数据库仍然收到重复项,因此无法解决。
说我有这个:
<div class="row">
<form class="col s12">
<div class="row">
<div class="input-field col s12">
<textarea id="textarea1" class="materialize-textarea"></textarea>
<label for="textarea1">Textarea</label>
</div>
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
并说我的代码的一部分我运行这个:
$('#textarea1').text(someverylongstring)
Run Code Online (Sandbox Code Playgroud)
这个问题是我的textarea将保持"小",直到我点击它并向下箭头发现我添加到它的文本.当找到底部时,textarea会自动扩展到更大的文本区域以容纳内容.我的问题是,在将文本添加到textarea之后是否有办法强制切换元素的大小调整方面?
python ×7
peewee ×2
sqlite ×2
string ×2
bash ×1
dictionary ×1
flask ×1
javascript ×1
jquery ×1
list ×1
materialize ×1
mysql ×1
orm ×1
parsing ×1
python-2.7 ×1