Python 问题 我该如何快速的重载、刷新一个TXT文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 问题 我该如何快速的重载、刷新一个TXT文件?相关的知识,希望对你有一定的参考价值。

新手 请问各位大佬啦

例 其实我是想快速刷新服务器日志里的内容 如果出现 "ERROR" 的错误使用 IF 通知我 ,我只想使用PYTHON实现 但是感觉使用FOR循环读取延迟还是比较高 我想更快刷新 txt 有什么办法

import time

n=0

def count_n2():
global n
n=n+1
return n

for i in iter(count_n2, 0): #for循环读取
f = open(r'./woshitxt.txt','r',encoding='utf_8') #刷新
print(f.read())

参考技术A 记录最后一次修改时间,没有变动就不需要再读取内容了 参考技术B

 我猜你的服务器是linux吧,那建议采用 inotifywait+tail+python 脚本的方式,inotifywait命令可参考 这里

本回答被提问者采纳
参考技术C 这个就重新加载吧追问

参考技术D 记录最后一次修改时间,没有变动就不需要再读取内容了

如何区分 TypeScript 重载中的类型对象和数组?

【中文标题】如何区分 TypeScript 重载中的类型对象和数组?【英文标题】:How to distinguish type object and array in TypeScript overload? 【发布时间】:2018-12-15 06:29:04 【问题描述】:

这是我的代码:

public foo<T>(src: object, type: Type<T>): T;
public foo<T>(src: any[], type: Type<T>[]): T[];
public foo<T>(src: object | any[], type: Type<T> | Type<T>[]): T | T[] ...

我想要做的是保证以下约束的重载:

一个对象(不是数组),一个类型 > 单个对象 一个数组,一个数组类型>一个数组

问题是类型对象也可以是一个数组,因此以下组合成为可能:

foo([...], MyType) > 

有办法避免吗?或者你能推荐我一种重写重载的方法吗?

【问题讨论】:

超载应该做什么?您确定要在那里使用objectany[] 吗? 我想将一个普通对象转换为“类对象”或任何东西的数组(包括原始对象)。 【参考方案1】:

问题在于数组是一个对象,所以如果接受数组参数的重载不匹配,Typescript 将继续进行下一个接受对象的重载,并得出第一个参数与 @ 兼容的结论987654321@。

如果第一个参数是对象重载的数组,我们可以使用条件类型在第二个参数中引入不兼容。此外,如果您需要为数组推断出不止一种类型,则需要指定更多类型参数,(每种类型一个,直到合理数量的类型)

type Type<T> = new (...args:any[]) => T
type Type<T> = new (...args: any[]) => T
class C 
    public foo<T, P extends object>(src: P, type: P extends any[] ? never : Type<T>): T;
    public foo<T>(src: [any], type: [Type<T>]): [T];
    public foo<T, T1>(src: [any, any], type: [Type<T>, Type<T1>]): [T, T1];
    public foo<T, T1, T2>(src: [any, any, any], type: [Type<T>, Type<T1>, Type<T2>]): [T, T1, T2];
    public foo<T = any>(src: T[], type: Type<T>[]): T[]; // catch all oveload for arrays
    public foo(src: object | any[], type: Type<any> | Type<any>[]): any 

    



class MyClass  private x!: string 
class MyClass2  private x!: string 

let c = new C;
c.foo(, MyClass) // ok, return My Class
c.foo(, [MyClass]) // error
c.foo([], MyClass) // error
c.foo([], [MyClass]) // ok returns [MyClass]
c.foo([, ], [MyClass, MyClass2]) // ok returns [MyClass, MyClass2]
c.foo([, , ], [MyClass, MyClass2, MyClass]) // ok returns [MyClass, MyClass2, MyClass]

【讨论】:

这里的问题是你总是返回 T[],而不是我需要返回 T 如果对象和 T[] 如果数组。也许我可以在返回类型上使用条件类型。它不会变得非常可读,但它应该可以工作。 @nacho111 刚刚注意到使用条件不会为数组正确返回推断T。再一次,即使是原始的也有推断多种类型的问题。您希望类型数组包含多种类型吗?如果是这样,我们将需要额外的类型参数(每种类型一个,不超过任意数量) 不,我只需要 1 种 if 数组。 @nacho111 那为什么要传递一个数组呢? 好吧对不起,我的错。是的,我需要多种类型。

以上是关于Python 问题 我该如何快速的重载、刷新一个TXT文件?的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript 和 React:如何重载高阶组件/装饰器?

什么是类型重载的 python 等价物?

Apollo 似乎刷新了,当 state 映射到 props 时,我该如何防止呢?

如何使用 std::optional<T>::emplace 的第二个重载

如何实现不刷新页面,只重新加载js文件

如何区分 TypeScript 重载中的类型对象和数组?