相关疑难解决方法(0)

Python string.replace正则表达式

我有一个表单的参数文件

parameter-name parameter-value
Run Code Online (Sandbox Code Playgroud)

参数可以按任何顺序排列,但每行只有一个参数.我想用一个新值替换一个参数的参数值.

我正在使用之前发布的行替换函数(在Python中搜索并替换文件中的一行)来替换使用python的string.replace(pattern,subst)的行.我正在使用的正则表达式在vim中工作,但似乎不能在string.replace中工作.这是我正在使用的正则表达式:

line.replace("^.*interfaceOpDataFile.*$/i", "interfaceOpDataFile %s" % (fileIn))
Run Code Online (Sandbox Code Playgroud)

其中interfaceOpDataFile是我要替换的参数名称(/ i表示不区分大小写),新参数值是fileIn变量的内容.有没有办法让python识别这个正则表达式,否则还有另一种方法可以完成这个任务吗?

python regex replace

379
推荐指数
4
解决办法
72万
查看次数

pandas + dataframe - 按部分字符串选择

我有一个DataFrame4列,其中2列包含字符串值.我想知道是否有办法根据与特定列的部分字符串匹配来选择行?

换句话说,函数或lambda函数会做类似的事情

re.search(pattern, cell_in_question) 
Run Code Online (Sandbox Code Playgroud)

返回一个布尔值.我熟悉语法,df[df['A'] == "hello world"]但似乎无法找到一种方法来做同样的部分字符串匹配说'hello'.

有人能指出我正确的方向吗?

python string dataframe pandas

356
推荐指数
12
解决办法
49万
查看次数

哪个是在Python中连接字符串的首选方法?

由于Python string无法更改,我想知道如何更有效地连接字符串?

我可以这样写:

s += stringfromelsewhere
Run Code Online (Sandbox Code Playgroud)

或者像这样:

s = []
s.append(somestring)

later

s = ''.join(s)
Run Code Online (Sandbox Code Playgroud)

在写这个问题时,我发现了一篇很好的文章谈论这个话题.

http://www.skymind.com/~ocrow/python_string/

但它是在Python 2.x.中,所以问题是在Python 3中做了哪些改变?

python string concat python-3.x

325
推荐指数
10
解决办法
62万
查看次数

为什么在python中用字符串声明unicode?

我还在学习python,我有一个疑问:

在python 2.6.x中,我通常在文件头中声明编码,如下所示(如PEP 0263)

# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

在那之后,我的字符串像往常一样写:

a = "A normal string without declared Unicode"
Run Code Online (Sandbox Code Playgroud)

但每次我看到python项目代码时,都不会在标题处声明编码.相反,它在每个字符串声明如下:

a = u"A string with declared Unicode"
Run Code Online (Sandbox Code Playgroud)

有什么不同?这是为了什么目的?我知道Python 2.6.x默认设置ASCII编码,但它可以被头声明覆盖,那么每个字符串声明的重点是什么?

附录:似乎我已将文件编码与字符串编码混合在一起.谢谢你解释:)

python encoding utf-8

120
推荐指数
4
解决办法
15万
查看次数

字符串文字前面带有"r"的含义是什么意思?

我第一次看到它用于构建跨多行的正则表达式作为方法参数re.compile(),所以我认为它r代表RegEx.

例如:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)
Run Code Online (Sandbox Code Playgroud)

那么r在这种情况下意味着什么呢?我们为什么需要它?

python string syntax literals rawstring

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

处理以re.sub替换模式捕获组的反向引用

我想取字符串0.71331, 52.25378并返回0.71331,52.25378- 即只需查找数字,逗号,空格和数字,并删除空格.

这是我目前的代码:

coords = '0.71331, 52.25378'
coord_re = re.sub("(\d), (\d)", "\1,\2", coords)
print coord_re
Run Code Online (Sandbox Code Playgroud)

但这给了我0.7133,2.25378.我究竟做错了什么?

python regex

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

Python中的sscanf

我正在寻找与sscanf()Python 相当的东西.我想解析/proc/net/*文件,在CI中可以做这样的事情:

int matches = sscanf(
        buffer,
        "%*d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %*X %*X:%*X %*X:%*X %*X %*d %*d %ld %*512s\n",
        local_addr, &local_port, rem_addr, &rem_port, &inode);
Run Code Online (Sandbox Code Playgroud)

我首先想到的是str.split,但是它不会拆分给定的字符,而是整个sep字符串:

>>> lines = open("/proc/net/dev").readlines()
>>> for l in lines[2:]:
>>>     cols = l.split(string.whitespace + ":")
>>>     print len(cols)
1
Run Code Online (Sandbox Code Playgroud)

如上所述,应该返回17.

是否有一个等价于sscanf(不是RE)的Python ,或者标准库中的字符串拆分函数,它分裂了我不知道的任何一系列字符?

python parsing split scanf procfs

59
推荐指数
5
解决办法
11万
查看次数

如何在pandas中读取空格分隔值的文件

我尝试将文件读入熊猫.该文件的值由空格分隔,但我尝试的空格数不同:

pd.read_csv('file.csv', delimiter=' ')
Run Code Online (Sandbox Code Playgroud)

但它不起作用

python pandas delimiter-separated-values

57
推荐指数
2
解决办法
6万
查看次数

Python open()给出IOError:Errno 2没有这样的文件或目录

出于某种原因,我的代码无法打开一个简单的文件:

这是代码:

file1 = open('recentlyUpdated.yaml')
Run Code Online (Sandbox Code Playgroud)

错误是:

IOError: [Errno 2] No such file or directory: 'recentlyUpdated.yaml'
Run Code Online (Sandbox Code Playgroud)
  • 当然,我检查了这是文件的正确名称.
  • 我试过移动文件,给出文件open()的完整路径,似乎没有任何工作.

python file-io file filenotfoundexception file-not-found

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

究竟什么是"原始字符串正则表达式"以及如何使用它?

正则表达式的python文档,关于'\'字符:

解决方案是使用Python的原始字符串表示法来表示正则表达式模式; 在前缀的字符串文字中,不以任何特殊方式处理反斜杠'r'.所以r"\n"是一个包含'\'和的双字符字符串'n',"\n"而是包含换行符的单字符字符串.通常,模式将使用此原始字符串表示法在Python代码中表示.

什么是原始字符串表示法?如果您使用原始字符串格式,这是否意味着"*"作为文字字符而不是零或多指标?这显然是不对的,否则正则表达式将彻底失去它的力量.但是,如果它是一个原始字符串,它"\n"是如何识别换行符,如果它实际上是一个反斜杠和一个"n"

我不跟随.

编辑赏金:

我试图理解原始字符串正则表达式如何匹配换行符,制表符和字符集,例如\w单词或\d数字或所有其他,如果原始字符串模式不能将反斜杠识别为普通字符以外的任何内容.我真的可以使用一些很好的例子.

python regex python-module rawstring

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