我正在尝试制作一个脚本,用于从一个目录中的文件夹中解压缩所有.tar.gz文件.例如,我将调用一个文件(testing.tar.gz).然后如果我手动操作,我可以按"提取",然后.tar.gz文件将创建一个新文件,并调用testing.tar.最后,如果我重复按"提取此处"的过程,.tar文件会将所有.pdf文件生成.
我想知道我怎么能这样做,而且我的代码在这里,似乎并不是现实的工作.
import os
import tarfile
import zipfile
def extract_file(path, to_directory='.'):
if path.endswith('.zip'):
opener, mode = zipfile.ZipFile, 'r'
elif path.endswith('.tar.gz') or path.endswith('.tgz'):
opener, mode = tarfile.open, 'r:gz'
elif path.endswith('.tar.bz2') or path.endswith('.tbz'):
opener, mode = tarfile.open, 'r:bz2'
else:
raise ValueError, "Could not extract `%s` as no appropriate extractor is found" % path
cwd = os.getcwd()
os.chdir(to_directory)
try:
file = opener(path, mode)
try: file.extractall()
finally: file.close()
finally:
os.chdir(cwd)
Run Code Online (Sandbox Code Playgroud) 我有一个简单的.csv格式数据,需要先进行操作才能创建符合此数据的绘图.但是,我理解如何从python中操作.csv格式数据.我想在R中应用相同的逻辑,但我不知道如何做到这一点.
下面是来自.csv文件的示例数据,但加载到R.我已经为我们创建了代码来讨论这个问题.
df <- data.frame(Name = c("AC", "AC", "PT", "PT", "OR", "OR"),
useless_column = c("","","A",3,4," "),
measurement = c("H", "", "K", "M", "", "H"),
amount = c(12, 54, 20, 87, 75, 22),
useless_column = c("","","A",3,4," "))
Run Code Online (Sandbox Code Playgroud)
在python中,我通常会这样做:
import csv
import os
import glob
import sys
fileList = glob.glob("R:xxxxxxxxxxxxxxxxxxxxx\*.csv")
for inputFile in fileList:
outputFilename = inputFile + "output.csv"
csvInput = csv.reader(open(inputFile,'r'),delimiter=",")
outputFile = open(outputFilename,'w')
outputFile.write("Name,measurement,amount\n")
csvInput.next()
for line in csvInput:
if line[2] == "H":
meas = "100"
elif line[2] == "K": …Run Code Online (Sandbox Code Playgroud)