我用 Python 编写了一个代码,它遍历文件,提取所有数字,将它们相加。我现在必须在文件中的特定位置写下“总计”(一个整数)something something something...Total: __00__ something something。
我必须在Total: __部分之后写出我计算的总数,这意味着结果行将更改为,例如:something something something...Total: __35__ something something。
到目前为止,我在写部分有这个:
import re
f1 = open("filename.txt", 'r+')
for line in f1:
if '__' in line and 'Total:' in line:
location = re.search(r'__', line)
print(location)
Run Code Online (Sandbox Code Playgroud)
这打印出来: <_sre.SRE_Match object; span=(21, 23), match='__'>
所以它在位置 21 到 23 处找到了“__”,这意味着我想在位置 24 处插入总数。我知道我必须以某种方式使用该seek()方法来做到这一点。但是我试过几次都失败了。任何建议,将不胜感激。
重要提示:文件的原始内容将按原样保留。只有总的变化——没有别的。
我有以下数据:
Lines = "20/03/2014,9996792524
21/04/2014,8479115468
21/09/2014,11394750532
16/10/2014,9594869828
18/11/2014,10850291677
08/12/2014,10475635302
22/01/2015,10116010939
26/02/2015,11206949341
20/03/2015,11975140317
09/04/2015,11526960332
29/04/2015,9986194500
16/09/2015,11501088256
13/10/2015,11833183163
10/11/2015,13246940910
16/12/2015,13255698568
27/01/2016,13775653990
23/02/2016,13567323648
22/03/2016,14607415705
11/04/2016,13835444224
04/04/2016,14118970743"
Run Code Online (Sandbox Code Playgroud)
我把这个读到 R 中:
z <- read.zoo(text = Lines, sep = ",", header = TRUE, index = 1:1, tz = "", format = "%d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)
我希望插入数据,以便可以将这个不规则间隔的时间序列转换为规则的时间序列。只要是有规律的,时间间隔并不重要,但每月、每周或每两周一次的间隔都可以。
我该如何在Ror中执行此操作Matlab?
注意:我意识到插值可能不是很准确,并且可能会歪曲信息,但是我需要学习如何做到这一点,并且我可以接受失去一些准确性。
我正在进行无线网络的安全研究,该研究涉及编码一个小工具,用于扫描附近的Wifi接入点.根据发现的加密类型,它继续进行其他一些安全测试.
到目前为止,我有一个python代码,它使用Scapy枚举不同的访问点,以及它们是否启用了加密(Enc = Y或Enc = N).这个代码是:
def sniffAP(p):
if ( (p.haslayer(Dot11Beacon) or p.haslayer(Dot11ProbeResp))
and not aps.has_key(p[Dot11].addr3)):
ssid = p[Dot11Elt].info
bssid = p[Dot11].addr3
channel = int( ord(p[Dot11Elt:3].info))
capability = p.sprintf("{Dot11Beacon:%Dot11Beacon.cap%}\
{Dot11ProbeResp:%Dot11ProbeResp.cap%}")
# Check for encrypted networks
if re.search("privacy", capability): enc = 'Y'
else: enc = 'N'
Run Code Online (Sandbox Code Playgroud)
我想要的是能够使用python和scapy区分不同的加密类型(WEP,WPA,WPA2,WPS).有任何想法吗?
我在Python中使用argparse来处理程序中的参数.例如,如下所示,如果我使用参数'-p',则执行特定模块.现在,所有论点和程序运行良好.但是当我试图为我的程序获得' - help'时,它会崩溃(图像).
这是与argparse相关的代码:
parser = argparse.ArgumentParser(description="something1.")
parser.add_argument('-x', '--xoo', help='something2', action='store_true')
parser.add_argument('-a', '--al', help='something3', action='store_true')
parser.add_argument('-c', '--conv', help='something4', type=float)
parser.add_argument('-p', '--pay', help='something5', type=float)
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
关于如何纠正这个错误的任何想法?
$ ./xoom.py -h
Traceback (most recent call last):
File "./xoom.py", line 46, in <module>
args = parser.parse_args()
File "/usr/lib/python2.7/argparse.py", line 1688, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "/usr/lib/python2.7/argparse.py", line 1723, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
File "/usr/lib/python2.7/argparse.py", line 1929, in _parse_known_args
start_index = consume_optional(start_index)
File "/usr/lib/python2.7/argparse.py", line 1869, in …Run Code Online (Sandbox Code Playgroud) 我希望强制执行一条规则,即python代码中的任何行都不得超过80个字符.为此,我使用bash脚本计算文件中整行的长度.但是,我需要排除用于缩进的起始空格.我希望从行中第一个字符的位置开始计算,直到最后一个字符:例如:
this is an example line
Run Code Online (Sandbox Code Playgroud)
length()需要返回(31-8 = 23)而不是31.
如何做到这一点使用sed,awk或grep查询?
public class url {
public static void main(String[] args) throws Exception {
URL imdb = new URL("http://www.omdbapi.com/?t=The%20incredible%20Hulk");
URLConnection yc = imdb.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
String[] strarr = inputLine.split(",");
System.out.println("splits.size: " + strarr.length);
in.close();
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:"线程中的异常"主"java.lang.NullPointerException at imdb.url.main(url.java:25)"
请向我解释如何删除它.我使用分割函数和空指针异常搜索了很多,但是我无法理解我做错了什么.
我有一个很长的比特序列,我从文件中转储.现在,我想采用这个位序列,并能够从中提取每个第8位.例如:
100010010101000001001110010001110000110100001010
000110100000101000000000000000000000000000001101
010010010100100001000100010100100000000000000000
etc
Run Code Online (Sandbox Code Playgroud)
会给:
100110
(extraction from second line)
(extraction from third line)
etc
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有以下代码:
#/usr/bin/python
with open("thebits.txt", 'r') as f:
content = [x.strip('\n') for x in f.readlines()]
{//logic to extract every 8th bit from each line and print it}
Run Code Online (Sandbox Code Playgroud)
如何从每一行中提取每个第8位?.
我编写了一个程序,它递归地搜索文件夹中具有特定扩展名的文件并进行一些处理。奇怪的是,该程序在处理大约 85 个文件时运行良好,然后每次在同一文件上都会崩溃。我不认为该文件或文件名有什么不同。因为它对于 85 个文件运行良好,所以我知道错误不是关于我的代码本身,而是更多关于错误的编译器?
操作系统:Linux arctic 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64 GNU/Linux
错误详细信息(完整回溯):
Traceback (most recent call last):
File "scoretotal.py", line 98, in <module>
main()
File "scoretotal.py", line 96, in main
find_score_files()
File "scoretotal.py", line 89, in find_score_files
total = calculate_total((os.path.join(root,filename)))
File "scoretotal.py", line 14, in calculate_total
lines = file_object_read.read()
File "/soft/linux/bin/../python3.3.3/lib/python3.3/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd8 in position 17: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我在跑Python 3.3.3。根据我在网上的研究,它可能与 …
到目前为止,我已经在十六进制编辑器中打开了图像并查看了字节。但是,对于我的一生,我无法识别声音。我花了几天的时间。我什至尝试用Audacity打开文件(作为“原始数据”)并播放它。只是“噪音”。试图创建直方图/频率分析,但一无所获。
任何帮助,将不胜感激。
我FindNextFileW用来成功列出目录中的文件。问题在于,它使用引用自身,当前目录,并使用引用.父目录..。我试图使用if条件跳过这些,但它仍然会打印它们。
码:
int wmain() {
WIN32_FIND_DATAW data;
std::wstring dir = L"c:\\* ";
HANDLE hFind = FindFirstFileW(dir.c_str(), &data);
if (hFind != INVALID_HANDLE_VALUE) {
do {
wchar_t dot[] = L"." ;
wchar_t dotd[] = L"..";
if ( data.cFileName != dot && data.cFileName != dotd)
std::wcout << data.cFileName << std::endl;
} while (FindNextFileW(hFind, &data));
FindClose(hFind);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我想跳过的印刷.和..使用的if条件。但是,它仍然打印它们。我在做什么错,我该如何解决?
编辑:
这个问题不是关于wchar_t数组无法比较的问题。很高兴知道这一点,但最终我的问题是如何跳过.and ..in FindNextFileW …
python ×5
argparse ×1
audio ×1
awk ×1
bash ×1
c++ ×1
debugging ×1
file-io ×1
file-writing ×1
forecasting ×1
function ×1
grep ×1
hex-editors ×1
image ×1
java ×1
loops ×1
matlab ×1
python-3.3 ×1
python-3.x ×1
r ×1
scapy ×1
security ×1
sed ×1
seek ×1
time-series ×1
unicode ×1
utf-8 ×1
wifi ×1
winapi ×1
windows ×1