相关疑难解决方法(0)

从python中的gzip文件中读取

我只是在python上制作gzip的消息.

import gzip
f=gzip.open('Onlyfinnaly.log.gz','rb')
file_content=f.read()
print file_content
Run Code Online (Sandbox Code Playgroud)

我在屏幕上没有输出.作为python的初学者,我想知道如果我想在gzip文件中读取文件的内容该怎么办.谢谢.

python gzip python-2.7

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

在Python中检查空文件或丢失文件的正确方法

我想检查一个文件是否存在,如果存在,是否为空.

如果文件不存在,我想退出程序并显示错误消息.

如果文件为空,我想退出不同的错误消息.

否则我想继续.

我一直在阅读使用Try:Except:但我不确定如何构造代码'Pythonly'来实现我追求的目标?


感谢您的所有回复,我使用以下代码:

try:
    if os.stat(URLFilePath + URLFile).st_size > 0:
        print "Processing..."
    else:
        print "Empty URL file ... exiting"
        sys.exit()
except OSError:
    print "URL file missing ... exiting"
    sys.exit()
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

Python os.stat(file_name).st_size与os.path.getsize(file_name)

我有两段代码,它们都是为了做同样的事情 - 坐在一个循环中,直到写完文件.它们主要用于通过FTP/SCP进入的文件.

一个版本的代码使用它os.stat()[stat.ST_SIZE]:

size1,size2 = 1,0
while size1 != size2:
  size1 = os.stat(file_name)[stat.ST_SIZE]
  time.sleep(300)
  size2 = os.stat(file_name)[stat.ST_SIZE]
Run Code Online (Sandbox Code Playgroud)

另一个版本用于os.path.getsize():

size1,size2 = 0,0
while True:
  size2 = os.path.getsize(file_name)
  if size1 == size2:
    break
  else:
    time.sleep(300)
    size1 = size2
Run Code Online (Sandbox Code Playgroud)

我已经看到多个实例,其中使用第一种方法报告,当文件实际上仍在增长时,大小相同.是否有一些潜在的原因导致os.stat()错误报告而os.path.getsize()不会?我没有看到任何错误或异常.

python python-2.6

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

如何在Python中跳过用panda读取空文件

我将一个文件夹中的所有文件逐个读入DataFrame,然后检查它们的某些条件.有几千个文件,我想在文件为空时让pandas引发异常,这样我的读者功能就会跳过这个文件.

我有类似的东西:

class StructureReader(FileList):
    def __init__(self, dirname, filename):
        self.dirname=dirname
        self.filename=str(self.dirname+"/"+filename)
    def read(self):
        self.data = pd.read_csv(self.filename, header=None, sep = ",")
        if len(self.data)==0:
           raise ValueError
class Run(object):
    def __init__(self, dirname):
        self.dirname=dirname
        self.file__list=FileList(dirname)
        self.result=Result()
    def run(self):
        for k in self.file__list.file_list[:]:
            self.b=StructureReader(self.dirname, k)
            try:
                self.b.read()
                self.b.find_interesting_bonds(self.result)
                self.b.find_same_direction_chain(self.result)
            except ValueError:
                pass
Run Code Online (Sandbox Code Playgroud)

我正在搜索某些条件的常规文件如下所示:

"A/C/24","A/G/14","WW_cis",,
"B/C/24","A/G/15","WW_cis",,
"C/C/24","A/F/11","WW_cis",,
"d/C/24","A/G/12","WW_cis",,
Run Code Online (Sandbox Code Playgroud)

但不知怎的,我不会被ValueError提升,我的函数正在搜索空文件,这在我的结果文件中给了我很多"空数据框..."行.如何让程序跳过空文件?

python dataframe pandas

5
推荐指数
2
解决办法
6557
查看次数

检查文本文件是否为空Python

有没有办法检查Python中的文本文件是否为空而不使用操作系统?

到目前为止我尝试过的

x = open("friends.txt")
friendsfile = x.readlines()

if friendsfile == None 
Run Code Online (Sandbox Code Playgroud)

但我不认为这是正确的方法.

python

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

如何在空文件上使用 json.load(filename)?

我有一个可能是空的文件,也可能不是空的。目标是从文件中读取一个 json 对象,附加到它,然后将它写回文件。但是,在文件为空的情况下, json.load() 会失败。如何解决此问题而无需事先检查文件是否为空?

这是我当前的代码:

with open(filename, 'a+') as infile:
    old_data = json.load(infile)
data = old_data + obj
with open(filename, 'w') as outfile:
    json.dump(data, outfile)
Run Code Online (Sandbox Code Playgroud)

错误信息是:

 File "<stdin>", line 3, in <module>
  File "/usr/lib/python3.6/json/__init__.py", line 299, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 …
Run Code Online (Sandbox Code Playgroud)

python json python-3.x

3
推荐指数
2
解决办法
9604
查看次数

标签 统计

python ×6

python-2.7 ×2

dataframe ×1

gzip ×1

json ×1

pandas ×1

python-2.6 ×1

python-3.x ×1