小编Dan*_*Dan的帖子

从列表中的字符串中删除有问题的字符

要解析的示例数据(unicode字符串列表):

[u'\n', u'1\xa0', u'Some text here.', u'\n', u'1\xa0', u'Some more text here.', 
u'\n', u'1\xa0', u'Some more text here.']
Run Code Online (Sandbox Code Playgroud)

我想\xa0从这些字符串中删除.

编辑: 当前方法不起作用:

def remove_from_list(l, x):
  return [li.replace(x, '') for li in l]

remove_from_list(list, u'\xa0')
Run Code Online (Sandbox Code Playgroud)

我仍然得到完全相同的输出.

python python-2.7

2
推荐指数
1
解决办法
1402
查看次数

用什么CSS/jQuery来避免屏幕分辨率低的用户切断网站?

我希望网站周围有一个灰色边框,供屏幕横向用户处理,但内容是必须出现的最重要的内容 - 特别是对于没有足够宽屏幕的用户(边框应该根本不显示或被切断或诸如此类的东西).我目前的CSS总是左右使用200px.我尝试将其切换到百分比,但它仍然只是使用它.如果我切换到指定正文中的宽度而不是不修复它的内容.

这是我现有网站的代码:http://jsfiddle.net/syQgH/1/,相关的CSS如下所示:

body {
    background-color: #e1ddd9;
    font-size: 12px;
    font-family: Verdana, Arial, Helvetica, SunSans-Regular, Sans-Serif;
    color:#564b47;
    margin: 20px 200px 20px 200px;
}
#content {
    width: 100%;
    padding: 0px;
    text-align: left;
    background-color: #fff;
    overflow: auto;
}
Run Code Online (Sandbox Code Playgroud)

以下是整页结果:http://jsfiddle.net/syQgH/1/embedded/result/

屏幕宽度较小的用户将看到它在x轴上切断,并在y轴上切换滚动条.我知道添加overflow-y在x轴上添加一个滚动条,但理想情况下我可以在网站周围有140px的动态灰色空间,屏幕横向允许,但很少或没有.我认为我应该使用百分比而不是固定像素值,但这似乎具有相同的效果,因为我不希望它对没有足够屏幕格局的用户生效.

我对JavaScript/jQuery解决方案持开放态度.

css jquery

2
推荐指数
1
解决办法
250
查看次数

检查字符串是否至少包含以下每个字符串:小写字母,大写字母,数字和特殊字符

我搜索了SO和Google,我发现的大多数示例似乎没有按预期工作(或者没有将所有这些元素组合在一起).我正在尝试创建一个匹配(传递)的Regex表达式,如果一个字符串字符串中的任何位置包含至少一个以下内容,并且如果它缺少任何一个则失败:

  • 至少8个字符的长度
  • 大写字母
  • 小写字符
  • 特殊字符(包括句号,下划线等,即白名单方法不可取 - 允许任何非字母数字字符)

这就是我尝试过的:

if (System.Text.RegularExpressions.Regex.IsMatch(txtTest.Text.Trim(), "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?^[a-zA-Z0-9_@.-]).{8,}$"))
{
    lblMsg.Text = "Pass";
}
else
{
    lblMsg.Text = "Fail";
}
Run Code Online (Sandbox Code Playgroud)

问题是这不符合预期.以下通行证应该失败(他们没有特殊字符):

  • 123cowboY
  • MonkeyCow123

它似乎可以很好地检测所有特殊字符.我做错了什么,我该如何解决?

c# regex asp.net

2
推荐指数
1
解决办法
3906
查看次数

我可以在字段构造函数之外设置 StringField 的默认值吗?

如果我在构建字段期间设置默认值,则一切都会按预期工作:

my_field = StringField("My Field: ", default="default value", validators=[Optional(), Length(0, 255)])
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试以编程方式设置它,则没有任何效果。我尝试过修改__init__方法,如下所示:

class MyForm(FlaskForm):
    my_field = StringField("My Field: ", validators=[Optional(), Length(0, 255)])

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.my_field.default = "set default from init"  # doesn't work
Run Code Online (Sandbox Code Playgroud)

这不会设置默认值。我如何以编程方式执行此操作(因为该值是基于数据库查询的动态值,如果我在外部执行此操作__init__,则它不会获得最新值)?

我的相关版本requirements.txt

Flask==0.12
Flask-WTF==0.14.2
WTForms==2.1
Run Code Online (Sandbox Code Playgroud)

另外,如果重要的话,我正在运行 Python 3.6。

或者,我很满意一个解决方案,该解决方案使我能够在添加新记录时在初始表单加载时设置此字段的值数据(与构造函数中指定的默认值相同的行为),但同样的表单也用于编辑,因此我不希望它更改已在编辑时保存/存储的对象数据。

python flask wtforms flask-wtforms python-3.6

2
推荐指数
1
解决办法
5288
查看次数

帮我简化这段代码(Python)

我是Python的初学者,自学Google代码大学.我把这个问题作为练习,并且能够使用下面显示的解决方案解决它:

# F. front_back
# Consider dividing a string into two halves.
# If the length is even, the front and back halves are the same length.
# If the length is odd, we'll say that the extra char goes in the front half.
# e.g. 'abcde', the front half is 'abc', the back half 'de'.
# Given 2 strings, a and b, return a string of the form
#  a-front + b-front + a-back + b-back
def front_back(a, b): …
Run Code Online (Sandbox Code Playgroud)

python code-formatting simplify

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

Python RegEx问题

我不确定为什么这不起作用:

import re
import csv

def check(q, s):
  match = re.search(r'%s' % q, s, re.IGNORECASE)
  if match:
    return True
  else:
    return False

tstr = []

# test strings
tstr.append('testthisisnotworking')
tstr.append('This is a TEsT')
tstr.append('This is a    TEST    mon!')

f = open('testwords.txt', 'rU')
reader = csv.reader(f)
for type, term, exp in reader:
  for i in range(2):
    if check(exp, tstr[i]):
      print exp + " hit on " + tstr[i]
    else:
      print exp + " did NOT hit on " + tstr[i]
f.close() …
Run Code Online (Sandbox Code Playgroud)

python regex

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

字典与元组作为价值观?

我有一个位置名称,然后是每个位置的纬度和经度.我正在尝试确定在Python中用两个值表达单个键的最佳方法.我在想这个:

dict = {
    'California': ('36.46715833333333', '-117.85891388888888'),
    'California2': ('36.46715833333333', '-117.85891388888888'),
}
Run Code Online (Sandbox Code Playgroud)

然后添加更多:

dict['California'] = ('36.46715833333333', '-117.85891388888888')
Run Code Online (Sandbox Code Playgroud)

但是,我将如何轻松地遍历每个并提取它们?

for location in dict:
    for lat, lon in location:
        print lat, lon
Run Code Online (Sandbox Code Playgroud)

这给出了一个ValueError,声明它没有多个值可以解压缩.我如何迭代这个并得到每个lat和long?

python python-2.7

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

烧瓶静态进度屏幕

选项1:没有Javascript

我只想在任务运行时显示一个静态模板,上面写着"请稍候......".以下是路径功能的简化版本:

@app.route('/import/towers/<case_id>/<filename>', methods=['GET', 'POST'])
def import_towers(case_id=None, filename=None):
    case_number = TollsCase.get_case_number(case_id)
    with open(os.path.join(app.config['UPLOAD_FOLDER'], filename), 'rb') as f:
        csv_f = csv.reader(f)
        headers = next(csv_f)
        if flask.request.method == 'POST':
            # show static progress screen here then process records in csv file
            for row in csv_f:
                # process record
            return 'success'
Run Code Online (Sandbox Code Playgroud)

它不会让我使用render_template而不返回,这会跳过我需要完成的处理.我需要它在流程运行显示进度屏幕,然后在完成后显示"成功".我该怎么做呢?


选项2:Javascript

如果无法做到并且必须使用Javascript ,那么这就是我到目前为止所尝试的:

在html之后,我在模板中有这个:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="application/javascript">
    $('form').on('submit', function() {
        $('#content').empty();
        $('#content').html('please wait...');
    })
</script>
Run Code Online (Sandbox Code Playgroud)

它适用于替换内容以在提交时显示进度页面,但现在表单未提交用于服务器端处理.我尝试data-ajax="false"在表单属性中设置,但是没有解决问题.我还尝试this.submit();在清除内容之前简单地使用,但这使得它等待服务器端处理,从而击败进度/等待屏幕的点.如果我使用Javascript,我仍然需要提交用于 …

javascript python jquery flask

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

删除Python中的文件不起作用

我正在尝试使用以下命令删除临时文件:

os.remove(str('temp.bin'))
Run Code Online (Sandbox Code Playgroud)

这是完整的功能,请注意我使用API​​(XWF)将数据读出到文件中,这样可以正常工作.这在收到有效图像时工作正常,因此问题不在此结束之外.代码仅在收到无效的图像文件时才会出现问题.我读取了临时文件的输入,因为它适用于我的解决方案,这里的问题是当它们不是有效图像时它不会删除它们.我不是在寻找一个关于为什么在将它写入临时文件之前检测它是否是图像会更好的讲座.幽默我,现在假设我有充分的理由这样做.

import OutputRedirector
import XWF
import os
from PIL import Image
from PIL.ExifTags import TAGS, GPSTAGS

gps_data = {}

def XT_ProcessItemEx(nItem, hItem, reserved):
    global gps_data
    fn = XWF.GetItemName(nItem)
    offset = 0
    size = XWF.GetItemSize(nItem)
    if offset < size:
        tempfn = fn + '.bin'
        f = open(tempfn, 'wb')
        buffer = XWF.Read(hItem, offset, size)
        f.write(buffer)
        f.close()
        try:
            image = Image.open(tempfn)
            exif_data = get_exif_data(image)
            gps = get_lat_lon(exif_data)
            if gps[0]:
                gps_data[fn] = (repr(gps[0]), repr(gps[1]))
                print('Found GPS data in %s' % fn)
            else: …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

0
推荐指数
1
解决办法
4863
查看次数

将指针传递给 bufio.Scanner()

为了避免我提供XY 问题,我的目标是按照建议在多个 goroutine 之间共享内存映射文件。每个 goroutine 都需要逐行遍历文件,所以我希望首先将完整内容存储在内存中以加快速度。

我尝试的方法是将指针传递给 a bufio.Scanner,但这不起作用。我认为这可能与需要将搜索位置设置回文件开头有关,但它甚至不是第一次工作,我在文档中找不到这样的参数。我的尝试是创建这个函数,然后通过引用我打算在 goroutine 中运行的函数传递结果(目前,我没有使用 goroutines只是为了确保它完全正常工作,但事实并非如此)。

这是一个 MWE:

// ... package declaration; imports; yada yada

func main() {
    // ... validate path to file stored in filePath variable
    filePath := "/path/to/file.txt"

    // get word list scanner to be shared between goroutines
    scanner := getScannerPtr(&filePath)

    // pass to function (no goroutine for now, I try to solve one problem at a time)
    myfunc(scanner)
}

func getScannerPtr(filePath …
Run Code Online (Sandbox Code Playgroud)

concurrency go memory-mapped-files

0
推荐指数
1
解决办法
961
查看次数