Python代码在进入函数时不起作用

2024-04-25 20:25:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,正在处理一些tar文件。以下示例有效:

#!/usr/bin/python
import os, readline, tarfile, scipy.io, numpy as np, sys
year = 2012;
month = 12;
day = 10;
RS = 9;
hour = 00;
minute = 05;
seconds = 00;
UTC = 1355094300;
anArchive = '/Users/user/data/20121210.zip';
tar = tarfile.open(anArchive);
dynamicPath = './%4d%2d%2d/RS%02d/%02d%02d%02d_%10d/all.txt' %(year, month, day, RS, hour,minute, seconds, UTC);
print(dynamicPath);
memb = tar.getmember(dynamicPath);
file = tar.extractfile(memb.name);
print('loading file with measurements...\n');
contents = file.read();
destinationFile = open("extractedFile.txt", "w");
destinationFile.write(contents);

它从tar中获取一个文件,将其提取并写入一个新文件。你知道吗

现在我想定义一个函数,它做同样的事情:

#!/usr/bin/python
import os, readline, tarfile, scipy.io, numpy as np, sys
def extractFile():
    year = 2012;
    month = 12;
    day = 10;
    RS = 9;
    hour = 00;
    minute = 05;
    seconds = 00;
    UTC = 1355094300;
    anArchive = "/Users/user/data/20121210.zip";
    tar = tarfile.open(anArchive);
    dynamicPath = "./%4d%2d%2d/LOSS_RS%02d/%02d%02d%02d_%10d/all.txt" %(year, month, day, RS, hour,minute, seconds, UTC);
    print(dynamicPath);
    #memb = tar.getmember("./20121210/RS09/004501_1355096701/all.txt");
    memb = tar.getmember(dynamicPath);
    file = tar.extractfile(memb.name);
    print('loading file with measurements...\n');
    contents = file.read();
    destinationFile = open("extractedFile.txt", "w");
    destinationFile.write(contents);
    return

保存它并确保它是可执行的之后,我从终端执行它,同时检查缩进错误:

python -t extractFile.py

结果什么都没有。没有错误,执行“完成”,但没有结果,就像我执行了空代码一样。你知道吗

你知道为什么同样的代码在用作函数时不起作用吗?你知道吗


Tags: txttaryearfileutcsecondsrsday
1条回答
网友
1楼 · 发布于 2024-04-25 20:25:08

您需要调用函数才能执行它-将此行添加到文件末尾:

extractFile()

也就是说,整个代码应该是:

#!/usr/bin/python
import os, readline, tarfile, scipy.io, numpy as np, sys
def extractFile():
    year = 2012;
    month = 12;
    day = 10;
    RS = 9;
    hour = 00;
    minute = 05;
    seconds = 00;
    UTC = 1355094300;
    anArchive = "/Users/user/data/20121210.zip";
    tar = tarfile.open(anArchive);
    dynamicPath = "./%4d%2d%2d/LOSS_RS%02d/%02d%02d%02d_%10d/all.txt" %(year, month, day, RS, hour,minute, seconds, UTC);
    print(dynamicPath);
    #memb = tar.getmember("./20121210/RS09/004501_1355096701/all.txt");
    memb = tar.getmember(dynamicPath);
    file = tar.extractfile(memb.name);
    print('loading file with measurements...\n');
    contents = file.read();
    destinationFile = open("extractedFile.txt", "w");
    destinationFile.write(contents);
    return
extractFile()

相关问题 更多 >